Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
 }
Esempio n. 4
0
        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));
        }