diff --git a/Manager.cpp b/Manager.cpp index 961db75..d2fee62 100644 --- a/Manager.cpp +++ b/Manager.cpp @@ -247,7 +247,15 @@ namespace util if (this->tasks.count(id) == 0) throw Error(402, "Eine solche Aufgabe existiert nicht."); if (!this->get_assignments_for_task(id).empty()) { - throw Error(201, "Aufgabe kann nicht gelöscht werden."); + throw Error(202, "Aufgabe kann nicht gelöscht werden."); + } + //TODO: Zudem kann eine Aufgabe nur gelöscht werden, wenn Sie nicht Nachfolgerin einer anderen Aufgabe ist -> Ensure its no Child + for (Task* task : this->get_tasks()) { + for (int child_id : task->get_children()) { + if (id == child_id) { + throw Error(202, "Aufgabe kann nicht gelöscht werden."); + } + } } this->tasks.erase(id); }