public async Task HandleAsync(TodoTask task) { var prev = await repository.GetById(task.Id); await valdiator.ValidateAndThrow(task); await repository.UpdateAsync(task.ToEntity()); }
public async Task HandleAsync(string id) { var task = await repository.GetById(id); await validator.ValidateAndThrow(task); await repository.DeleteAsync(task); }
public async Task ValidateAndThrow(TodoTask context) { var prev = await repository.GetById(context.Id); if (prev == null) { throw new TodoListValidationException($"Task was not found"); } if (string.IsNullOrWhiteSpace(context.Id)) { throw new TodoListValidationException($"{nameof(TodoTask.Id)} can't be empty"); } if (string.IsNullOrWhiteSpace(context.Name)) { throw new TodoListValidationException($"{nameof(TodoTask.Name)} can't be empty"); } if (context.Priority <= 0) { throw new TodoListValidationException($"{nameof(TodoTask.Priority)} must be positive"); } }