forked from University/epr24pr5-ojanssen2
34 lines
1 KiB
C++
34 lines
1 KiB
C++
#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
|