Esempio n. 1
0
        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));
        }