Пример #1
0
        public async Task <RetornoCancelarPedido> CancelarPedidoAsync(Guid id)
        {
            try
            {
                if (id == null || id == Guid.Empty)
                {
                    return new RetornoCancelarPedido()
                           {
                               Sucesso = false, Mensagem = "id Nulo."
                           }
                }
                ;

                var pedido = await repositorioPedido.BuscarPedidoAsync(id);

                if (pedido == null)
                {
                    return new RetornoCancelarPedido()
                           {
                               Sucesso = false, Mensagem = "Pedido não encontrado."
                           }
                }
                ;

                string mensagemValidacao;
                if (!pedido.Cancelar(out mensagemValidacao))
                {
                    return new RetornoCancelarPedido()
                           {
                               Sucesso = false, Mensagem = mensagemValidacao
                           }
                }
                ;

                await repositorioPedido.AtualizarPedidoAsync(pedido);

                return(new RetornoCancelarPedido()
                {
                    Sucesso = true, Id = pedido.Id
                });
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Erro.", id);
                return(new RetornoCancelarPedido()
                {
                    Sucesso = false, Mensagem = MENSAGEM_ERRO_GERNERICO
                });
            }
        }