Esempio n. 1
0
        public async Task ConfirmTasksAreCompleted(PMSTask task, CancellationToken cancellationToken)
        {
            var unCompletedProjectTasks = _taskRepo.GetAllIncluding().Where(x =>
                                                                            x.ProjectId == task.ProjectId &&
                                                                            x.State != Enums.TaskState.Completed &&
                                                                            x.Id != task.Id
                                                                            ).Count();

            if (unCompletedProjectTasks == 0)
            {
                await _publisher.Publish <ITaskCompletedMessage>(new TaskCompletedMessage()
                {
                    MessageId = new Guid(),
                    ProjectId = task.ProjectId,
                }, cancellationToken);
            }
        }
Esempio n. 2
0
        public void Ensure_Task_Is_Created(List <PMSTask> existingTasks)
        {
            // Arrange
            PMSTask savedTask = null;

            _taskRepositoryMock.Setup(x => x.GetAllIncluding()).Returns(existingTasks.AsQueryable());

            _taskRepositoryMock.Setup(x => x.Insert(It.IsAny <PMSTask>()))
            .Callback <PMSTask>((x) =>
            {
                x.Id      = 1;
                savedTask = x;
            });

            // Act
            var result = _taskService.Create(_newTask);

            // Assert
            _taskRepositoryMock.Verify(x => x.Insert(It.IsAny <PMSTask>()), Times.Once);
            Assert.False(result.HasError);
            Assert.NotNull(result.Data);
        }
Esempio n. 3
0
        private ServiceResultModel <PMSTask> ValidateTask(PMSTask model, List <int> newSubTasks)
        {
            var resultModel = new ServiceResultModel <PMSTask>();

            var subTasks = new List <TaskDto>();

            subTasks = GetAll(x => newSubTasks.Contains(x.Id)).ToList();


            if (subTasks.Count() != newSubTasks.Count())
            {
                resultModel.AddError(CommonConstant.TaskMessages.SubProjectsNotFound);
            }


            // validate sub task is not a parent to the task
            int verifyChildCannotBeParent = subTasks.Where(x => x.SubTasks.Select(x => x.Id).Contains(model.Id)).Count();

            if (verifyChildCannotBeParent > 0)
            {
                resultModel.AddError(CommonConstant.TaskMessages.ChildCannotBeParent);
            }

            if (!resultModel.HasError)
            {
                foreach (var task in subTasks)
                {
                    model.SubTasks.Add(new SubTask
                    {
                        ChildId = task.Id
                    });
                }
            }

            return(resultModel);
        }