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.*
83import com.github.kinquirer.KInquirer
4+ import com.github.kinquirer.components.promptConfirm
95import com.github.kinquirer.components.promptInput
106import com.github.kinquirer.components.promptList
117import kotlin.system.exitProcess
@@ -17,27 +13,53 @@ fun main() {
1713 return TaskCollectionImpl ()
1814 }
1915 }).invoke()
20- val addTask : (tasks: TaskCollection ) -> Unit = {
16+
17+ val activities: ActivityCollection = ActivityCollectionImpl ()
18+
19+ val addTask: () -> Unit = {
2120 val taskName = KInquirer .promptInput(" Task name:" )
2221 AddTask (tasks, taskName).invoke()
2322 }
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+ }
2941 }
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())
3247 }
48+ }
49+
50+ val quit: () -> Unit = {
51+ exitProcess(0 )
52+ }
53+
3354 val choices = mapOf (
3455 " AddTask" to addTask,
3556 " ListTask" to listTasks,
57+ " ListActivities" to listActivities,
3658 " Quit" to quit
3759 )
38- while (true ) {
60+ while (true ) {
3961 val selection: String = KInquirer .promptList(" What do you want to do?" , choices.keys.toList())
40- choices[selection]!! .invoke(tasks )
62+ choices[selection]!! .invoke()
4163 }
4264
4365}
0 commit comments