public IActionResult UpdateTask([FromBody] UpdateTaskModel updateTaskData) { var tg = ServiceFactory.TaskGraphService.Get(updateTaskData.taskGraphId); var ts = ServiceFactory.TaskSetService.Get(tg.TaskSetId.Value); if (!tg.ActiveUsers.Contains(updateTaskData.userId)) { return(Unauthorized()); } var task = ts.Tasks.Where(x => x.Data.Id == updateTaskData.taskId).First(); ts.Tasks.Remove(task); task.AssignedUser = updateTaskData.assignedUser; task.Data.Name = updateTaskData.name; task.Data.Description = updateTaskData.description; task.Data.CurrentStatus = updateTaskData.status; ts.Tasks.Add(task); var mappedTaskSet = TaskGraphService.ConvertTaskSet(ts); DataCollectorFactory.taskSetCollector.Update(mappedTaskSet); hub.Clients.Group(updateTaskData.taskGraphId.ToString()).SendAsync("update_task_node", task); return(Ok(task)); }
public IActionResult DeleteTask([FromBody] DeleteTaskModel deleteTaskModel) { var tg = ServiceFactory.TaskGraphService.Get(deleteTaskModel.taskGraphId); var ts = ServiceFactory.TaskSetService.Get(tg.TaskSetId.Value); if (!tg.ActiveUsers.Contains(deleteTaskModel.userId)) { return(Unauthorized()); } ((List <DataTransfer.Models.TaskNode>)ts.Tasks).RemoveAll(x => x.Data.Id.Equals(deleteTaskModel.taskId)); var taskSetModel = TaskGraphService.ConvertTaskSet(ts); foreach (var task in taskSetModel.Tasks) { ((List <Guid>)task.OutNeighbors).RemoveAll(x => x.Equals(deleteTaskModel.taskId)); } DataCollectorFactory.taskSetCollector.Update(taskSetModel); if (tg.RootId.HasValue && tg.RootId.Value.Equals(deleteTaskModel.taskId)) { tg.RootId = null; var tgModel = Mappers[Tuple.Create(Layer.Data, Layer.DataTransfer)].Map <DataTransfer.Models.TaskGraph, DataLayer.Models.TaskGraph>(tg); DataCollectorFactory.taskGraphCollector.Update(tgModel); } hub.Clients.Group(deleteTaskModel.taskGraphId.ToString()).SendAsync("delete_task_node", deleteTaskModel.taskId); return(Ok(deleteTaskModel.taskId)); }
static ServiceFactory() { TaskGraphService = new TaskGraphService(DataProviderFactory.taskGraphProvider, DataCollectorFactory.taskGraphCollector, DataProviderFactory.workspaceProvider); WorkspaceService = new WorkspaceService(DataProviderFactory.workspaceProvider, DataCollectorFactory.workspaceCollector); TaskSetService = new TaskSetService(DataProviderFactory.taskSetProvider, DataCollectorFactory.taskSetCollector); UsersService = new UsersService(DataProviderFactory.userProvider, DataCollectorFactory.userCollector); }
public IActionResult SetRoot([FromBody] TaskNodeSetRootModel setRootData) { var tg = ServiceFactory.TaskGraphService.Get(setRootData.TaskGraphId); var oldRootId = tg.RootId; var ts = ServiceFactory.TaskSetService.Get(tg.TaskSetId.Value); if (!tg.ActiveUsers.Contains(setRootData.userId)) { return(Unauthorized()); } var task = ts.Tasks.Where(x => x.Data.Id == setRootData.TaskId).First(); if (task.Data.CurrentStatus == Status.Blocked) { return(BadRequest()); } tg.RootId = task.Data.Id; var mappedTg = Mappers[Tuple.Create(Layer.Data, Layer.DataTransfer)].Map <DataTransfer.Models.TaskGraph, DataLayer.Models.TaskGraph>(tg); var oldTask = ts.Tasks.Where(x => x.Data.Id == oldRootId).First(); ts.Tasks.Remove(oldTask); oldTask.IsRoot = false; ts.Tasks.Add(oldTask); ts.Tasks.Remove(task); task.IsRoot = true; ts.Tasks.Add(task); if (!TaskGraphService.RespectsRules(ts, oldRootId.Value)) { return(BadRequest()); } var mappedTaskSet = TaskGraphService.ConvertTaskSet(ts); var moddedTg = DataCollectorFactory.taskGraphCollector.Update(mappedTg); DataCollectorFactory.taskSetCollector.Update(mappedTaskSet); hub.Clients.Group(setRootData.TaskGraphId.ToString()).SendAsync("set_root_node", setRootData); return(Ok(task)); }