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); } }
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); }
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); }