1
-
2
- import com.garbereder.tasktracker.entities.TaskCollection
3
- import com.garbereder.tasktracker.entities.TaskCollectionImpl
4
- import com.garbereder.tasktracker.usecases.tasks.AddTask
5
- import com.garbereder.tasktracker.usecases.tasks.ListTasks
6
- import com.garbereder.tasktracker.usecases.tasks.LoadTasks
7
- import com.garbereder.tasktracker.usecases.tasks.TaskCollectionReader
1
+ import com.garbereder.tasktracker.entities.*
2
+ import com.garbereder.tasktracker.usecases.tasks.*
8
3
import com.github.kinquirer.KInquirer
4
+ import com.github.kinquirer.components.promptConfirm
9
5
import com.github.kinquirer.components.promptInput
10
6
import com.github.kinquirer.components.promptList
11
7
import kotlin.system.exitProcess
@@ -17,27 +13,53 @@ fun main() {
17
13
return TaskCollectionImpl ()
18
14
}
19
15
}).invoke()
20
- val addTask : (tasks: TaskCollection ) -> Unit = {
16
+
17
+ val activities: ActivityCollection = ActivityCollectionImpl ()
18
+
19
+ val addTask: () -> Unit = {
21
20
val taskName = KInquirer .promptInput(" Task name:" )
22
21
AddTask (tasks, taskName).invoke()
23
22
}
24
- val listTasks : (tasks: TaskCollection ) -> Unit = {
25
- val taskIterator = ListTasks (tasks).invoke()
26
- while (taskIterator.hasNext()) {
27
- println (taskIterator.next().name)
28
- }
23
+
24
+ val listTasks: () -> Unit = {
25
+ val taskIterator = ListTasks (tasks).invoke()
26
+ val taskList = mutableMapOf<String , Task >()
27
+ while (taskIterator.hasNext()) {
28
+ val task = taskIterator.next()
29
+ taskList[task.name] = task
30
+ }
31
+ val selection: String = KInquirer .promptList(" What do you want to start?" , taskList.keys.toList())
32
+ val activity = StartActivity (taskList[selection]!! ).invoke()
33
+ activities.add(activity)
34
+ val stop = KInquirer .promptConfirm(" ${activity.task} started at ${activity.start} . Finish now?" )
35
+ if (stop) {
36
+ val stoppedActivity = StopActivity (activity).invoke()
37
+ activities.add(stoppedActivity)
38
+ activities.remove(activity)
39
+ println (" ${stoppedActivity.task} started at ${stoppedActivity.start} and finished at ${stoppedActivity.end} " )
40
+ }
29
41
}
30
- val quit : (tasks: TaskCollection ) -> Unit = {
31
- exitProcess(0 )
42
+
43
+ val listActivities: () -> Unit = {
44
+ val actIt = activities.iterator()
45
+ while (actIt.hasNext()) {
46
+ println (actIt.next())
32
47
}
48
+ }
49
+
50
+ val quit: () -> Unit = {
51
+ exitProcess(0 )
52
+ }
53
+
33
54
val choices = mapOf (
34
55
" AddTask" to addTask,
35
56
" ListTask" to listTasks,
57
+ " ListActivities" to listActivities,
36
58
" Quit" to quit
37
59
)
38
- while (true ) {
60
+ while (true ) {
39
61
val selection: String = KInquirer .promptList(" What do you want to do?" , choices.keys.toList())
40
- choices[selection]!! .invoke(tasks )
62
+ choices[selection]!! .invoke()
41
63
}
42
64
43
65
}
0 commit comments