#include "AssignCommand.h" #include "Error.h" #include "Manager.h" using util::Util; using util::Manager; using err::Error; namespace commands { AssignCommand::AssignCommand() : SubCommand("assign", true) { } void AssignCommand::run(stringstream& args) { Manager* mgr = Manager::get_instance(); int user_id, task_id; args >> user_id >> task_id; if (!args) throw Error(102, "Ein Parameter eines Befehls konnte nicht gelesen werden"); const User* u = mgr->get_user(user_id); if (!u) throw Error(401, "Eine solche BenutzerIn existiert nicht."); const Task* t = mgr->get_task(task_id); if (!t) throw Error(402, "Eine solche Aufgabe existiert nicht."); if (mgr->assignment_exists(user_id, task_id)) throw Error(302, "Eine solche Zuordnung existiert bereits."); Assignment* a = new Assignment(user_id, task_id); mgr->add_assignment(a); mgr->save(); } } // commands