Skip to content

Commit 92ec5df

Browse files
author
Gerrit Garbereder
committed
Add activities to CLI
1 parent 07a8299 commit 92ec5df

File tree

2 files changed

+40
-17
lines changed

2 files changed

+40
-17
lines changed

Task-Tracker-CLI/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ repositories {
1515
dependencies {
1616
testImplementation(kotlin("test"))
1717
implementation("com.github.kotlin-inquirer:kotlin-inquirer:0.1.0")
18+
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
1819
implementation("com.garbereder.tasktracker.usecases:Task-Tracker-Usecases:1.0-SNAPSHOT")
1920
implementation("com.garbereder.tasktracker.entities:Task-Tracker-Entities:1.0-SNAPSHOT")
2021
implementation("com.garbereder.tasktracker.entities-impl:Task-Tracker-Entities-Impl:1.0-SNAPSHOT")
Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
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.*
83
import com.github.kinquirer.KInquirer
4+
import com.github.kinquirer.components.promptConfirm
95
import com.github.kinquirer.components.promptInput
106
import com.github.kinquirer.components.promptList
117
import 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

Comments
 (0)