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 }); } }