예제 #1
0
        public IActionResult Add(TaskNodeAddModel taskNodeAddData)
        {
            var taskData = new DataTransfer.Events.TaskData
            {
                CurrentStatus = taskNodeAddData.TaskData.CurrentStatus,
                Description   = taskNodeAddData.TaskData.Description,
                Name          = taskNodeAddData.TaskData.Name,
                Id            = Guid.NewGuid(),
                TaskGraphId   = taskNodeAddData.TaskGraphId
            };

            string topicEndpoint = "https://accelerant-task-topic.francecentral-1.eventgrid.azure.net/api/events";

            string topicKey = "xBCWj/db0/+GiJnkgAsdLClZxCtPZStDbwKFJxQ40R0=";

            string           topicHostname    = new Uri(topicEndpoint).Host;
            TopicCredentials topicCredentials = new TopicCredentials(topicKey);
            EventGridClient  client           = new EventGridClient(topicCredentials);

            var eventsList = new List <EventGridEvent>();

            eventsList.Add(new EventGridEvent()
            {
                Id          = Guid.NewGuid().ToString(),
                EventType   = "Accelerant.TaskNodes.AddItem",
                Data        = taskData,
                EventTime   = DateTime.Now,
                Subject     = "accelerant-task-topic",
                DataVersion = "2.0"
            });

            client.PublishEventsAsync(topicHostname, eventsList).GetAwaiter().GetResult();
            return(Ok(taskData));
        }
예제 #2
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);
            }
예제 #4
0
        public IActionResult Add(TaskNodeAddModel taskNodeAddData)
        {
            var taskData = new DataTransfer.Events.TaskData
            {
                CurrentStatus           = taskNodeAddData.TaskData.CurrentStatus,
                Description             = taskNodeAddData.TaskData.Description,
                Name                    = taskNodeAddData.TaskData.Name,
                Id                      = Guid.NewGuid(),
                TaskGraphId             = taskNodeAddData.TaskGraphId,
                EstimatedCompletionTime = taskNodeAddData.TaskData.EstimatedCompletionTime
            };

            var added = ServiceFactory.TaskGraphService.AddTask(taskData, taskNodeAddData.TaskGraphId);

            hub.Clients.Group(taskNodeAddData.TaskGraphId.ToString()).SendAsync("add_task_node", added);



            return(Ok(added));
        }