public async Task <GenericCommandResponseModel> Handle(MarkTodoAsDoneRequestModel request, CancellationToken cancellationToken) { // Fail Fast Validation var validationResult = request.Validate(); if (!validationResult.IsValid) { return(new GenericCommandResponseModel(false, "Ops, parece que sua tarefa está errada!", validationResult.Errors)); } // Recupera o TodoItem var todo = await _repository.GetByIdAsync(request.Id, request.User); // Altera o estado todo.MarkAsDone(); // Salva no banco await _repository.UpdateAsync(todo); // Retorna o resultado return(new GenericCommandResponseModel(true, "Tarefa salva", todo)); }
public async Task <GenericCommandResponseModel> MarkAsDoneAsync([FromBody] MarkTodoAsDoneRequestModel command, [FromServices] IMediator mediator) { command.User = User.Claims.FirstOrDefault(x => x.Type == "user_id")?.Value; return(await mediator.Send(command)); }