예제 #1
0
        public DataTransfer.Models.TaskNode AddTask(DataTransfer.Events.TaskData item, Guid taskGraphId)
        {
            var taskGraph = Get(taskGraphId);

            var task = new DataTransfer.Models.TaskNode
            {
                Data = new TaskData
                {
                    Id            = item.Id,
                    CurrentStatus = item.CurrentStatus,
                    Description   = item.Description,
                    Name          = item.Name
                },
                AssignedUser = null,
                EstimatedCompletionTimespan = 0,
                OutNeighbors = new List <Guid>()
            };

            if (taskGraph.RootId is null && !taskGraph.TaskSetId.HasValue)
            {
                taskGraph.RootId    = task.Data.Id;
                taskGraph.TaskSetId = Guid.NewGuid();
                DataCollectorFactory.taskGraphCollector.Update(taskGraph);
                var taskSet = new TaskSet
                {
                    Id    = taskGraph.TaskSetId.Value,
                    Tasks = new List <TaskNode>()
                };
                taskSet.Tasks.Add(task);
                DataCollectorFactory.taskSetCollector.Add(taskSet);
            }
        public DataTransfer.Models.TaskNode AddTask(DataTransfer.Events.TaskData item, Guid taskGraphId)
        {
            var taskGraph = Get(taskGraphId);

            var task = new DataTransfer.Models.TaskNode
            {
                Data = new TaskData
                {
                    Id            = item.Id,
                    CurrentStatus = (DataLayer.Models.TaskData.Status)((int)item.CurrentStatus),
                    Description   = item.Description,
                    Name          = item.Name
                },
                AssignedUser = null,
                EstimatedCompletionTimespan = item.EstimatedCompletionTime,
                OutNeighbors = new List <Guid>(),
                InNeighbors  = new List <Guid>(),
                ParentId     = null,
                TaskGraphId  = taskGraphId,
                WorkspaceId  = null,
                IsRoot       = false
            };

            if (!taskGraph.TaskSetId.HasValue)
            {
                taskGraph.TaskSetId = Guid.NewGuid();
                var mappedTaskGraph = Mappers[Tuple.Create(Layer.Data, Layer.DataTransfer)].Map <TaskGraph, DataLayer.Models.TaskGraph>(taskGraph);
                DataCollectorFactory.taskGraphCollector.Update(mappedTaskGraph);
                var taskSet = new TaskSet
                {
                    Id    = taskGraph.TaskSetId.Value,
                    Tasks = new List <TaskNode>()
                };
                taskSet.Tasks.Add(task);

                var mappedTaskSet = ConvertTaskSet(taskSet);
                DataCollectorFactory.taskSetCollector.Add(mappedTaskSet);
            }

            if (taskGraph.RootId is null || taskGraph.RootId.Equals(Guid.Empty))
            {
                var taskSet = ServiceFactory.TaskSetService.Get(taskGraph.TaskSetId.Value);
                taskGraph.RootId = task.Data.Id;
                var mappedTaskGraph = Mappers[Tuple.Create(Layer.Data, Layer.DataTransfer)].Map <TaskGraph, DataLayer.Models.TaskGraph>(taskGraph);
                DataCollectorFactory.taskGraphCollector.Update(mappedTaskGraph);
                task.IsRoot             = true;
                task.Data.CurrentStatus = DLStatus.Assignable;
                taskSet.Tasks.Add(task);
                var mappedTaskSet = ConvertTaskSet(taskSet);
                DataCollectorFactory.taskSetCollector.Update(mappedTaskSet);
            }