public async Task <Unit> Handle(UpdateTask request, CancellationToken cancellationToken) { var projectTask = await _projectTaskRepository.GetByIdAsync(request.Id, cancellationToken); if (projectTask == null) { throw new DomainException("Task does not exist!"); } if (projectTask.Title != request.Title && await _projectTaskRepository.Exists(request.Title, projectTask.ProjectId, cancellationToken)) { throw new DomainException($"Task with name {request.Title} exists!"); } projectTask.Title = request.Title; projectTask.Description = request.Description; projectTask.Type = request.Type; projectTask.ModifiedDate = DateTime.UtcNow; _logger.LogInformation("----- Updating Task - Task: {@Task}", projectTask); _projectTaskRepository.Update(projectTask); await _projectTaskRepository.UnitOfWork.SaveChangesAsync(cancellationToken); return(Unit.Value); }
public async Task <Guid> Handle(CreateTask request, CancellationToken cancellationToken) { if (await _projectRepository.GetByIdAsync(request.ProjectId, cancellationToken) == null) { throw new DomainException("Project does not exist!"); } if (await _projectTaskRepository.Exists(request.Title, request.ProjectId, cancellationToken)) { throw new DomainException($"Task with name {request.Title} exists!"); } var projectTask = new ProjectTask { Id = _idGenerator.NewId(), Title = request.Title, Description = request.Description, Type = request.Type, ProjectId = request.ProjectId, CreatedDate = DateTime.UtcNow }; _logger.LogInformation("----- Creating Task - Task: {@Task}", projectTask); _projectTaskRepository.Add(projectTask); await _projectTaskRepository.UnitOfWork.SaveChangesAsync(cancellationToken); return(projectTask.Id); }