public virtual IEnumerable <PedidoModelView> Get() { var usuario = LoggedUser.GetLoggedUser(); if (usuario == null) { throw new Exception("Não foi possível obter o usuário logado."); } var pedidosUsuario = _pedidoServico.BuscarPorUsuario(usuario); var pedidosRetorno = new List <PedidoModelView>(); pedidosUsuario.Select(x => x.Cartao = _cartaoServico.DescriptografarCartao(x.Cartao)); foreach (var pedido in pedidosUsuario) { pedidosRetorno.Add(new PedidoModelView(pedido)); } return(pedidosRetorno); }
public Resposta <Pedido> Finalizar([FromBody] Pedido entity) { entity.ListaCompra = _listaCompraServico.BuscarPorId(entity.ListaCompra.Id); var pedido = _pedidoServico.ValidarESalvar(entity); pedido.Cartao = pedido.Cartao == null ? pedido.Cartao : _cartaoServico.DescriptografarCartao(pedido.Cartao); var cpf = pedido.Usuario.Pessoa.Documentos.FirstOrDefault(x => x.Tipo == (int)TipoDocumento.Cpf)?.Numero; string retornoApi; var retorno = new RespostaTransacaoCartaoModelView(); if (ConfigurationManager.AppSettings["API_REALIZA_TRANSACAO"] == "0") { retornoApi = "sucesso"; } else { pedido.Cartao.Decrypted = false; pedido.Cartao = _cartaoServico.DescriptografarCartao(pedido.Cartao); switch (ConfigurationManager.AppSettings["API_REALIZA_TRANSACAO_FORMA_PAGAMENTO"]) { case "0": //MobSeg retornoApi = _apiTransacaoCartao.RealizaTransacaoCartao(Convert.ToInt64(cpf?.Replace(".", "").Replace("-", "")), 0, pedido.Cartao?.NumeroSemMascara, pedido.Cartao?.Validade.Replace("/", ""), pedido.Cartao?.Cvv, pedido.ListaCompra.Total.ToString("######.00").Replace(",", "").Replace(".", "")); retorno = new JavaScriptSerializer().Deserialize <RespostaTransacaoCartaoModelView>(retornoApi); break; case "1": //PayZen var retornoKeyValue = Aplicacao.apipayzen.ApiPayzenBase.CreatePayment(pedido); retornoApi = retornoKeyValue.Value; retorno = new RespostaTransacaoCartaoModelView { CodigoResposta = retornoKeyValue.Key, Mensagem = retornoKeyValue.Value }; break; default: retornoApi = "sucesso"; break; } pedido.Cartao = _cartaoServico.Criptografar(_cartaoServico.BuscarPorId(pedido.Cartao.Id)); } if (retornoApiInfox.Contains("sucesso")) { _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta); _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.AguardandoConfirmacao, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta); } else { _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoNaoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta); } var pedidoRetorno = _pedidoServico.BuscarPorId(pedido.Id); pedidoRetorno.ListaCompra = _listaCompraServico.AtribuiDescontoAListaCompra(pedidoRetorno.ListaCompra); pedidoRetorno.Cartao.Decrypted = false; pedidoRetorno.Cartao = _cartaoServico.DescriptografarCartao(pedidoRetorno.Cartao); return(new Resposta <Pedido> { Mensagem = retornoApiInfox.Contains("sucesso") ? "Compra realizada com sucesso!" : "Falha ao processar o pagamento com a operadora do cartão!", ObjetoRetorno = pedidoRetorno, TipoMensagem = retornoApiInfox.Contains("sucesso") ? TipoModal.Success : TipoModal.Danger }); }