public async Task <ValidationResult> Handle(PedidoDeletarCommand comando, CancellationToken cancelar) { if (comando.EhValido()) { Pedido pedido = await _pedidoRepository.RemoverAsync(comando.Id); if (pedido == null) { comando.Validacao.Errors.Add(new ValidationFailure("Deletar", "Não foi encontrado pedido para ser deletado")); return(comando.Validacao); } else { if (pedido.Status == PedidoStatus.Aprovado) { comando.Validacao.Errors.Add(new ValidationFailure("Status", "Pedido já está aprovado.")); return(comando.Validacao); } } if (!await _unitOfWork.SalvarAsync()) { comando.Validacao.Errors.Add(new ValidationFailure("Salvar", "Erro ao tentar salvar operação")); } } return(comando.Validacao); }
public async Task <ValidationResult> Deletar(Guid id) { PedidoDeletarCommand pedidoDeletarCommand = new PedidoDeletarCommand(id); return(await _mediator.Send(pedidoDeletarCommand)); }