Exemplo n.º 1
0
        public IActionResult EstornarProduto(uint idTransacao, uint idProduto)
        {
            try
            {
                PagarMeService.DefaultApiKey = _configuration.GetValue <string>("Pagamento:DefaultApiKey");

                var produtoPedido = _reposPedido.BuscarProdutoPedido(idProduto);
                var valorEstorno  = Convert.ToInt32((produtoPedido.Valor * produtoPedido.Quantidade).ToString().Replace(".", ""));

                var transacao = PagarMeService.GetDefaultService().Transactions.Find(idTransacao.ToString());
                transacao.Refund(valorEstorno);

                produtoPedido.Situacao        = (byte)Global.Produto.Cancelado;
                produtoPedido.DataAtualizacao = DateTime.Now;

                if (_reposPedido.AtualizarProdutoPedido(produtoPedido) > 0)
                {
                    var produto = _reposProduto.Buscar(produtoPedido.IdProduto);
                    produto.Estoque += produtoPedido.Quantidade;

                    if (_reposProduto.Atualizar(produto) > 0)
                    {
                        GerarLog((byte)Global.Entidade.Pedido, (byte)Global.Acao.Editar, Convert.ToUInt32(transacao.Id));
                        return(Json(Global.Mensagem.SucessoOperacao));
                    }
                }

                return(BadRequest(Global.Mensagem.FalhaAtualizacao));
            }
            catch (Exception erro)
            {
                GerarLogErro(erro, (byte)Global.Entidade.Pedido, (byte)Global.Acao.Editar);
                return(BadRequest(Global.Mensagem.FalhaBanco));
            }
        }
Exemplo n.º 2
0
 public Task Invoke()
 {
     try
     {
         _reposPedido.AtualizarProdutoPedido();
         return(Task.CompletedTask);
     }
     catch (Exception erro)
     {
         return(Task.FromException(erro));
     }
 }