From a8d390ffe39aaa9eea79c8771b6277a2027b49da Mon Sep 17 00:00:00 2001 From: jbrass Date: Mon, 10 Feb 2025 00:57:17 +0100 Subject: [PATCH] Fix Deletion Constraint (No Child) --- Manager.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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); }