forked from University/epr24pr5-ojanssen2
Show Active Command. is_active Method for Taks
This commit is contained in:
parent
ca9bd3d2e9
commit
ca572b6fb5
4 changed files with 32 additions and 6 deletions
|
@ -22,7 +22,11 @@ namespace commands
|
||||||
const User* u = mgr->get_user(user_id);
|
const User* u = mgr->get_user(user_id);
|
||||||
if (!u)
|
if (!u)
|
||||||
throw Error(401, "Eine solche BenutzerIn existiert nicht.");
|
throw Error(401, "Eine solche BenutzerIn existiert nicht.");
|
||||||
for (const Assignment* a : mgr->get_assignments_for_user(user_id))
|
for (const Assignment* a : mgr->get_assignments_for_user(user_id)) {
|
||||||
cout << a->get_task_id() << "\n";
|
//Ist der Related Task ein Aktiver Task?
|
||||||
|
if (mgr->get_task(a->get_task_id())->is_active()) {
|
||||||
|
cout << a->get_task_id() << "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // commands
|
} // commands
|
||||||
|
|
|
@ -250,12 +250,16 @@ namespace util
|
||||||
throw Error(202, "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
|
//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 (Task* task : this->get_tasks()) {
|
||||||
for (int child_id : task->get_children()) {
|
for (int child_id : task->get_children()) {
|
||||||
if (id == child_id) {
|
if (id == child_id) {
|
||||||
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
|
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
if (! this->get_task(id)->is_active()) {
|
||||||
|
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
|
||||||
|
|
||||||
}
|
}
|
||||||
this->tasks.erase(id);
|
this->tasks.erase(id);
|
||||||
}
|
}
|
||||||
|
|
23
Task.cpp
23
Task.cpp
|
@ -31,9 +31,26 @@ namespace models
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Task::get_id() const
|
int Task::get_id() const { return this->id; }
|
||||||
{
|
|
||||||
return this->id;
|
/**
|
||||||
|
* Diese Methode überprüft ob der Task Aktiv ist ( Nicht Nachfolger einer anderen Klass ist)
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
bool Task::is_active() const {
|
||||||
|
|
||||||
|
Manager* mgr = Manager::get_instance();
|
||||||
|
for (Task* task : mgr->get_tasks()) {
|
||||||
|
for (int child_id : task->get_children()) {
|
||||||
|
// Aktiver Task ist Child von Einem andern Task -> Nicht aktiv
|
||||||
|
if (this->id == child_id) {
|
||||||
|
// cout << this->id << " = " << child_id << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Kein Child-> Aktiv
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
string Task::get_name() const
|
string Task::get_name() const
|
||||||
|
|
1
Task.h
1
Task.h
|
@ -28,6 +28,7 @@ namespace models
|
||||||
istream& read(istream&);
|
istream& read(istream&);
|
||||||
|
|
||||||
int get_id() const;
|
int get_id() const;
|
||||||
|
bool is_active() const;
|
||||||
string get_name() const;
|
string get_name() const;
|
||||||
string get_description() const;
|
string get_description() const;
|
||||||
vector<int> get_children() const;
|
vector<int> get_children() const;
|
||||||
|
|
Loading…
Add table
Reference in a new issue