From 7336daddb1753b4bfa762bf6d3c67f24db066947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Sun, 17 Mar 2024 08:32:33 +0100 Subject: [PATCH] Add root(sub)tasks to taskserie --- .../java/core/services/TaskSeriesService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/core/services/TaskSeriesService.java b/backend/src/main/java/core/services/TaskSeriesService.java index 11764e3..6e555c4 100644 --- a/backend/src/main/java/core/services/TaskSeriesService.java +++ b/backend/src/main/java/core/services/TaskSeriesService.java @@ -37,8 +37,7 @@ public class TaskSeriesService { int weekDayIndex = 0; for(Map.Entry repeatingTaskInfo: offsetMap.entrySet()) { Task rootTask = repeatingTaskInfo.getKey(); - TaskSerieItem rootItem = new TaskSerieItem(rootTask, weekDayIndex); - taskSerie.addItem(rootItem); + addRootSubTasksToTaskSerie(taskSerie, rootTask, weekDayIndex); int itemIndex = weekDayIndex +1; Tupel, Collection> repeatingResult = repeatTask(rootTask, taskRepeatInfo.getEndDate(), offsetMap, taskSerie, itemIndex); @@ -101,8 +100,7 @@ public class TaskSeriesService { public ServiceExitCode createTaskSeries(Task rootTask, TaskRepeatDayInfo taskRepeatInfo) { TaskSerie taskSerie = new TaskSerie(); - TaskSerieItem rootItem = taskSerie.addTask(rootTask); - rootTask.setTaskSerieItem(rootItem); + addRootSubTasksToTaskSerie(taskSerie, rootTask, 0); HashMap offsetMap = new HashMap<>(); offsetMap.put(rootTask, taskRepeatInfo.getOffset()); @@ -120,6 +118,16 @@ public class TaskSeriesService { return ServiceExitCode.OK; } + private void addRootSubTasksToTaskSerie(TaskSerie taskSerie, Task rootTask, int index) { + Queue taskQueue = new LinkedList<>(Collections.singletonList(rootTask)); + while(!taskQueue.isEmpty()) { + Task currentTask = taskQueue.poll(); + + TaskSerieItem taskSerieItem = new TaskSerieItem(currentTask, index); + taskSerie.addItem(taskSerieItem); + } + } + public void deleteTaskSeriesItem(Task task) { TaskSerieItem item = task.getTaskSerieItem(); TaskSerie taskSerie = task.getTaskSerieItem().getTaskSerie();