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)); } }
public Task Invoke() { try { _reposPedido.AtualizarProdutoPedido(); return(Task.CompletedTask); } catch (Exception erro) { return(Task.FromException(erro)); } }