private void AtualizarVendaBilheteria(BD bd, EstruturaVenda venda) { try { string nota = string.Empty; if (oProcessamento.oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.Adyen) { nota = AdyenStatic.Fields.NotaFiscal; } else { nota = oProcessamento.oPagamento.oSitef.CupomFiscal; } oVendaBilheteria.AtualizarPagamentoProcessado(bd, venda.ID, nota); if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("Pagamento e Nota fiscal Atualizados.", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.Transacoes); } } catch (Exception ex) { if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Não foi possível atualizar o Pagamento e Nota Fiscal.", ex.Message, SalvarLog.Events.Transacoes); } throw ex; } }
private void AtualizarFormaPagamento(BD bd, EstruturaVenda venda) { oVendaBilheteriaFormaPagamento.Ler(venda.FormaPagamento.VendaBilheteriaFormaPagamentoID); if (oProcessamento.oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.Adyen) { oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oAdyen.CodigoReferencia; oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor = oProcessamento.oPagamento.oAdyen.CodigoAutenticacao ?? oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor; oVendaBilheteriaFormaPagamento.Cupom.Valor = AdyenStatic.Fields.NotaFiscal; } else { oVendaBilheteriaFormaPagamento.VendaBilheteriaFormaPagamentoTEFID.Valor = oProcessamento.oPagamento.oSitef.ID; oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefVenda; oVendaBilheteriaFormaPagamento.MensagemRetorno.Valor = oProcessamento.oPagamento.oSitef.MensagemFinaliza; oVendaBilheteriaFormaPagamento.HoraTransacao.Valor = oProcessamento.oPagamento.oSitef.HoraTransacao; oVendaBilheteriaFormaPagamento.DataTransacao.Valor = oProcessamento.oPagamento.oSitef.DataTransacao; oVendaBilheteriaFormaPagamento.CodigoIR.Valor = oProcessamento.oPagamento.oSitef.CodigoIR; oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor = oProcessamento.oPagamento.oSitef.NumeroAutorizacao; oVendaBilheteriaFormaPagamento.NSUHost.Valor = oProcessamento.oPagamento.oSitef.NSUHost; oVendaBilheteriaFormaPagamento.NSUSitef.Valor = oProcessamento.oPagamento.oSitef.NSUSitef; oVendaBilheteriaFormaPagamento.Cupom.Valor = oProcessamento.oPagamento.oSitef.CupomFiscal; oVendaBilheteriaFormaPagamento.DadosConfirmacaoVenda.Valor = oProcessamento.oPagamento.oSitef.DadosConfirmacao; oVendaBilheteriaFormaPagamento.Rede.Valor = oProcessamento.oPagamento.oSitef.RedeRetorno; oVendaBilheteriaFormaPagamento.CodigoRespostaTransacao.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefFinaliza; if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("VendaBilheteriaFormaPagamento Atualizada\n NotaFiscal: " + oProcessamento.oPagamento.oSitef.CupomFiscal, Enumeradores.TipoEntrada.Sucesso, SalvarLog.Events.Transacoes); } } oVendaBilheteriaFormaPagamento.Atualizar(bd); }
private void SolicitarDocumentos(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } EstruturaVenda venda = (EstruturaVenda)objVenda; try { oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.EmAnalise, venda.Score, venda.RetornoAccertify); EstruturaTransacoesDetalhes detalheVendas = oVendaBilheteria.AcompanhamentoIngressos(venda.ID); if (ConfigurationManager.AppSettings["CanaisImais"].ToString().Contains(detalheVendas.CanalID.ToString())) { email.EnviarSolicitacaoDocumentos_im(venda.Cliente.ID, detalheVendas, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } else { email.EnviarSolicitacaoDocumentos(venda.Cliente.ID, detalheVendas, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } } catch (Exception ex) { throw new Exception("Solicitar Documentos : " + ex.Message); } }
public void EfetuarPagamento(EstruturaVenda venda, string action = "") { LogUtil.Debug(string.Format("##HammerHead.EfetuandoPagamento## VENDA: {0}, ACTION: {1}", venda.ID, action)); var success = false; var sw = new Stopwatch(); sw.Start(); try { this.ProcessarVenda(venda, action); success = true; } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.EfetuandoPagamento.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); throw; } finally { sw.Stop(); LogUtil.Debug(string.Format("##HammerHead.EfetuandoPagamento.FINISH## VENDA: {0}, SUCESS: {1}, TEMPO_DECORRIDO_TOTAL: {2} ms", venda.ID, success, sw.ElapsedMilliseconds)); } }
public void EnviarSMS(HammerHead.EstruturaVenda venda) { if (!APIHuman.Ativo) { return; } try { if (string.IsNullOrEmpty(venda.NumeroCelular)) { return; } EstruturaEnvioSMS sms = new EstruturaEnvioSMS() { Senha = venda.Senha, DataVenda = venda.DataVenda.ToShortDateString(), Email = venda.Cliente.Email, Nome = venda.Cliente.Nome, Numero = venda.NumeroCelular, ValorTotal = venda.ValorTotal, }; this.EnviarSms(true, sms); } catch (Exception ex) { throw new Exception("Erro: " + ex.Message); } }
public Enumeradores.RetornoProcessamento ProcessarVenda(EstruturaVenda venda) { LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda## VENDA: {0}", venda)); this.Venda = venda; this.MontarPagamento(); var retorno = this.Processar(); venda.RetornoAccertify = this.RetornoAccertify; return(retorno); }
private void Chageback(EstruturaVenda venda) { try { LogUtil.Info(string.Format("##HammerHead.Chageback## VENDA: {0}", venda.ID)); oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Aprovado, venda.Score, venda.RetornoAccertify); LogUtil.Info(string.Format("##HammerHead.Chageback.SUCCESS## VENDA: {0}", venda.ID)); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.Chageback.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); SalvarLog.SalvarErro("Erro ao atualizar chargeback: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
private void Analisar(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } EstruturaVenda venda = (EstruturaVenda)objVenda; try { oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.EmAnalise, venda.Score, venda.RetornoAccertify); } catch (Exception ex) { throw new Exception("Analisar : " + ex.Message); } }
private void CancelarSemFraude(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } EstruturaVenda venda = (EstruturaVenda)objVenda; try { oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Cancelado, venda.Score, venda.RetornoAccertify); } catch (Exception ex) { SalvarLog.SalvarErro("Erro ao cancelar a Venda: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
private void VendaJaCancelada(EstruturaVenda venda, bool fraude = false) { try { LogUtil.Info(string.Format("##HammerHead.VendaJaCancelada## VENDA: {0}", venda.ID)); var statusAntiFraude = fraude ? VendaBilheteria.StatusAntiFraude.Fraude : VendaBilheteria.StatusAntiFraude.Aprovado; oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, statusAntiFraude, venda.Score, venda.RetornoAccertify); LogUtil.Info(string.Format("##HammerHead.VendaJaCancelada.SUCCESS## VENDA: {0}", venda.ID)); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.VendaJaCancelada.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); SalvarLog.SalvarErro("Erro ao atualizar venda já cancelada: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
private void AtualizarVenda(EstruturaVenda venda) { BD bd = new BD(); try { bd.IniciarTransacao(); this.AtualizarVendaBilheteria(bd, venda); this.AtualizarFormaPagamento(bd, venda); bd.FinalizarTransacao(); } catch (Exception ex) { bd.DesfazerTransacao(); SalvarLog.SalvarErro("Falha ao atualizar a venda", ex.Message, SalvarLog.Events.Transacoes); } finally { bd.Fechar(); } }
private void AtualizarScore(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } EstruturaVenda venda = (EstruturaVenda)objVenda; BD bd = new BD(); try { oVendaBilheteria.AtualizarScore(bd, venda.ID, venda.Score, venda.RetornoAccertify.ToString()); } catch (Exception ex) { throw ex; } finally { bd.Fechar(); } }
public static XmlDocument GerarXMLVenda(HammerHead.EstruturaVenda Venda) { BD bd = new BD(); try { bd.Consulta(string.Format(@" SELECT vb.Senha AS Senha, vb.ID AS VendaBilheteriaID, vb.Senha, vb.Status, vb.DataVenda, vb.ValorTotal, vb.TaxaConvenienciaValorTotal, vb.TaxaEntregaValor, vb.IP, cn.Nome AS Canal, c.ID AS ClienteID, c.CPF AS CPFCliente, c.DataCadastro, c.Nome AS NomeCliente, c.Email AS EmailCliente, c.DDDTelefone + c.Telefone AS TelefoneCliente, c.EnderecoCliente, c.CidadeCliente, c.EstadoCliente, c.CEPCliente, 'BR' AS PaisCliente, ce.Nome, ce.CPF, ce.Endereco, ce.Cidade, ce.Estado, ce.CEP, e.Nome AS Entrega, e.PrazoEntrega, e.ID AS EntregaID, CASE WHEN ea.ID IS NOT NULL THEN ea.Data + '235959' ELSE CONVERT(VARCHAR,DateAdd(Day, e.PrazoEntrega, CONVERT(DATETIME, SUBSTRING(vb.DataVenda, 0 ,9), 112)), 112) + '235959' END AS DataEntrega, VendaCancelada FROM tVendaBilheteria vb (NOLOCK) INNER JOIN tCaixa cx (NOLOCK) ON cx.ID = vb.CaixaID INNER JOIN tLoja l (NOLOCK) ON l.ID = cx.LojaID INNER JOIN tCanal cn (NOLOCK) ON cn.ID = l.CanalID INNER JOIN tCliente c (NOLOCK) ON vb.ClienteID = c.ID LEFT JOIN tClienteEndereco ce (NOLOCK) ON ce.ID = vb.ClienteEnderecoID INNER JOIN tEntregaControle ec (NOLOCK) ON ec.ID = vb.EntregaControleID INNER JOIN tEntrega e (NOLOCK) ON e.ID = ec.EntregaID LEFT JOIN tEntregaAgenda ea (NOLOCK) ON ea.ID = vb.EntregaAgendaID WHERE vb.ID = {0} ", Venda.ID)); if (!bd.Consulta().Read() || bd.LerBoolean("VendaCancelada")) { throw new VendaCanceladaException(Venda.ID); } var transaction = new List <order>(); string forcestatus = string.Empty; if (!string.IsNullOrEmpty(Venda.AccertifyForceStatus)) { forcestatus = Venda.AccertifyForceStatus == ((char)ForceStatusType.APPROVE).ToString() ? ForceStatusType.APPROVE.ToString() : ForceStatusType.REVIEW.ToString(); } do { transaction.Add(new order() { orderNumber = bd.LerString("Senha"), orderType = "Sale", orderDateTime = bd.LerDateTimeAccertify("DataVenda"), totalAmount = bd.LerDecimal("ValorTotal").ToString("#0.00"), totalSalesTax = bd.LerDecimal("TaxaConvenienciaValorTotal").ToString("#0.00"), totalShippingCharges = bd.LerDecimal("TaxaEntregaValor").ToString("#0.00"), ipAddress = bd.LerString("IP"), salesChannel = bd.LerString("Canal").RemoveAcentos().ToUpper(), ForceStatus = forcestatus, paymentInformation = new paymentInformation() { billingFullName = Venda.FormaPagamento.NomeCartao, billingFirstName = Venda.FormaPagamento.NomeCartao.Split(' ').FirstOrDefault(), billingLastName = Venda.FormaPagamento.NomeCartao.Split(' ').LastOrDefault(), cardNumber = Venda.Cartao.NumeroCartao, cardExpireDate = !string.IsNullOrEmpty(Venda.Cartao.DataVencimento) ? Venda.Cartao.DataVencimento.Substring(2, 2) + "/" + Venda.Cartao.DataVencimento.Substring(0, 2) : string.Empty, cardAuthorizationCode = "approved", //Venda.Cartao.CodigoSeguranca, paymentType = Venda.FormaPagamento.Bandeira, cardType = Venda.FormaPagamento.Bandeira, }, failedCCInformation = new failedCCInformation() { }, memberInformation = new memberInformation() { memberID = bd.LerInt("ClienteID").ToString(), memberCPF = bd.LerString("CPFCliente").ToString(), membershipDate = bd.LerDateTimeAccertify("DataCadastro"), memberFullName = bd.LerString("NomeCliente").RemoveAcentos().ToUpper(), memberFirstName = bd.LerString("NomeCliente").Split(' ').FirstOrDefault().RemoveAcentos().ToUpper(), memberLastName = bd.LerString("NomeCliente").Split(' ').LastOrDefault().RemoveAcentos().ToUpper(), memberPostalCode = bd.LerString("CEPCliente").AsCEP(), memberEmail = bd.LerString("EmailCliente").RemoveAcentos().ToUpper(), memberPhone = bd.LerString("TelefoneCliente").RemoveAcentos().ToUpper(), memberAddress = bd.LerString("EnderecoCliente").RemoveAcentos().ToUpper(), memberCity = bd.LerString("CidadeCliente").RemoveAcentos().ToUpper(), memberRegion = bd.LerString("EstadoCliente").RemoveAcentos().ToUpper(), memberCountry = "BR", registeredMember = "Y", guest = "N", }, shippingInformation = new shippingInformation() { shippingFullName = bd.LerString("Nome").ToUpper(), shippingCPF = bd.LerString("CPF"), shippingFirstName = bd.LerString("Nome").Split(' ').FirstOrDefault().RemoveAcentos().ToUpper(), shippingLastName = bd.LerString("Nome").Split(' ').LastOrDefault().RemoveAcentos().ToUpper(), shippingAddress = bd.LerString("Endereco").RemoveAcentos().ToUpper(), shippingCity = bd.LerString("Cidade").RemoveAcentos().ToUpper(), shippingRegion = bd.LerString("Estado").RemoveAcentos().ToUpper(), shippingPostalCode = bd.LerString("CEP").AsCEP(), shippingCountry = bd.LerString("CEP").Length == 0 ? string.Empty : "BR", shippingMethod = bd.LerString("Entrega").RemoveAcentos(), shippingDeadline = bd.LerString("CEP").Length == 0 ? string.Empty : bd.LerDateTimeAccertify("DataEntrega") } }); } while (bd.Consulta().Read()); bd.FecharConsulta(); bd.Consulta(string.Format(@" SELECT vb.ID, e.ID AS EventoID, e.Nome AS Evento, ap.Horario, l.Nome AS Local, l.Logradouro, l.Cidade, l.Estado, l.CEP, p.ID AS PrecoID, p.Valor, COUNT(DISTINCT i.ID) AS Quantidade, et.Nome AS Categoria, es.Descricao AS Genero, vbi.TaxaConvenienciaValor, i.SessionID FROM tVendaBilheteria vb (NOLOCK) INNER JOIN tIngressoLog il (NOLOCK) ON il.VendaBilheteriaID = vb.ID INNER JOIN tIngresso i (NOLOCK) ON i.ID = il.IngressoID INNER JOIN tEvento e (NOLOCK) ON e.ID = i.EventoID INNER JOIN tApresentacao ap (NOLOCK) ON ap.ID = i.ApresentacaoID INNER JOIN tLocal l (NOLOCK) ON l.ID = e.LocalID INNER JOIN tPreco p (NOLOCK) ON p.ID = il.PrecoID LEFT JOIN tEventoSubtipo es (NOLOCK) ON es.ID = e.EventoSubTipoID LEFT JOIN tEventoTipo et (NOLOCK) ON et.ID = es.EventoTipoID INNER JOIN tVendaBilheteriaItem vbi (NOLOCK) ON vbi.ID = il.VendaBilheteriaItemID WHERE vb.ID = {0} AND i.Status IN('{1}', '{2}', '{3}') AND il.Acao = 'V' GROUP BY vb.ID, e.ID, e.Nome, ap.Horario, l.Nome, l.Logradouro, l.Cidade, l.Estado, l.CEP, p.ID, p.Valor, et.Nome, es.Descricao, vbi.TaxaConvenienciaValor, i.SessionID ORDER BY vb.ID, p.ID", Venda.ID, Ingresso.VENDIDO, Ingresso.ENTREGUE, Ingresso.IMPRESSO)); int vendaID = 0; var venda = new order(); while (bd.Consulta().Read()) { if (vendaID != bd.LerInt("ID")) { vendaID = bd.LerInt("ID"); venda = transaction.Where(c => c.orderNumber.EndsWith(vendaID.ToString())).FirstOrDefault(); if (venda == null) { continue; } } venda.eventDetails.Add(new eventinfo() { eventID = bd.LerInt("EventoID").ToString(), eventDateTime = bd.LerDateTimeAccertify("Horario"), eventLocation = bd.LerString("Local").RemoveAcentos().ToUpper(), eventAddress = bd.LerString("Logradouro").RemoveAcentos().ToUpper(), eventPostalCode = bd.LerString("CEP").AsCEP(), eventCity = bd.LerString("Cidade").RemoveAcentos().ToUpper(), eventState = bd.LerString("Estado").RemoveAcentos().ToUpper(), eventCountry = "BR", ticketPrice = bd.LerDecimal("Valor").ToString("#0.00"), ticketQuantity = bd.LerInt("Quantidade").ToString(), eventCategory = bd.LerString("Categoria").RemoveAcentos().ToUpper(), eventGenre = bd.LerString("Genero").RemoveAcentos().ToUpper(), eventTax = bd.LerDecimal("TaxaConvenienciaValor").ToString("#0.00"), eventDescription = bd.LerString("Evento"), }); venda.SessionID = bd.LerString("SessionID"); } XmlSerializer ser = new XmlSerializer(transaction.GetType()); XmlDocument xml = new XmlDocument(); using (MemoryStream fs = new MemoryStream()) { ser.Serialize(fs, transaction); fs.Position = 0; var sr = new StreamReader(fs); string myStr = sr.ReadToEnd().Replace("eventinfo", "event").Replace("ArrayOfOrder", "transactions"); xml.LoadXml(myStr); } return(xml); } finally { bd.Fechar(); } }
private void Aprovar(object objVenda) { var sw = new Stopwatch(); sw.Start(); if (!(objVenda is EstruturaVenda)) { LogUtil.Debug(string.Format("##HammerHead.Aprovar.ERRO## OBJ_VENDA: {0}", objVenda)); return; } EstruturaVenda venda = (EstruturaVenda)objVenda; try { LogUtil.Debug(string.Format("##HammerHead.Aprovar## VENDA: {0}", venda.ID)); var listaIngressos = new List <IngressoImpressao>(); var status = VendaBilheteria.StatusAntiFraude.Aprovado; oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, status, venda.Score, venda.RetornoAccertify); LogUtil.Debug(string.Format("##HammerHead.Aprovar.AtualizarStatusAntiFraudeCalled## VENDA: {0}, TEMPO_DECORRIDO: {1} ms", venda.ID, sw.ElapsedMilliseconds)); EstruturaTransacoesDetalhes detalheVendas = oVendaBilheteria.AcompanhamentoIngressos(venda.ID); LogUtil.Debug(string.Format("##HammerHead.Aprovar.AcompanhamentoIngressosCalled## VENDA: {0}, TEMPO_DECORRIDO: {1} ms", venda.ID, sw.ElapsedMilliseconds)); LogUtil.Debug(string.Format("##HammerHead.Aprovar## VENDA: {0}, IMPRESSÃO_INTERNET: {1}", venda.ID, detalheVendas.PermitirImpressaoInternet)); if (detalheVendas.PermitirImpressaoInternet) { listaIngressos = ingressos.PesquisaVendaBilheteria(detalheVendas.VendaBilheteriaID); LogUtil.Debug(string.Format("##HammerHead.Aprovar.PesquisaVendaBilheteriaCalled## VENDA: {0}, TEMPO_DECORRIDO: {1} ms", venda.ID, sw.ElapsedMilliseconds)); } if (listaIngressos.Count > 0) { LogUtil.Debug(string.Format("##HammerHead.Aprovar.EnviarEmail## VENDA: {0}, MSG: {1}", venda.ID, "EnviarConfirmacaoCompraComIngresso")); if ( ConfigurationManager.AppSettings["CanaisImais"].ToString() .Contains(detalheVendas.CanalID.ToString())) { email.EnviarConfirmacaoCompraComIngresso_im(venda.Cliente.ID, detalheVendas, listaIngressos, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } else { email.EnviarConfirmacaoCompraComIngresso(venda.Cliente.ID, detalheVendas, listaIngressos, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } } else { LogUtil.Debug(string.Format("##HammerHead.Aprovar.EnviarEmail## VENDA: {0}, MSG: {1}", venda.ID, "EnviarConfirmacaoCompra")); if ( ConfigurationManager.AppSettings["CanaisImais"].ToString() .Contains(detalheVendas.CanalID.ToString())) { email.EnviarConfirmacaoCompra_im(venda.Cliente.ID, detalheVendas, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } else { email.EnviarConfirmacaoCompra(venda.Cliente.ID, detalheVendas, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } } LogUtil.Debug(string.Format("##HammerHead.Aprovar.EmailConfirmacaoEnviado## VENDA: {0}, TEMPO_DECORRIDO: {1} ms", venda.ID, sw.ElapsedMilliseconds)); } catch (Exception ex) { LogUtil.Error( string.Format("##HammerHead.Aprovar.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); throw new Exception("Erro ao Aprovar : " + ex.Message); } finally { sw.Stop(); LogUtil.Debug(string.Format("##HammerHead.Aprovar.FINISHED## VENDA: {0}, TEMPO_DECORRIDO: {1}", venda.ID, sw.ElapsedMilliseconds)); } }
public void ProcessarVenda(EstruturaVenda venda, string action = "") { var sw = new Stopwatch(); sw.Start(); if (venda.VendaCancelada) { this.oProcessamento.RetornoAccertify = Enumeradores.RetornoAccertify.VendaJaCancelada; } var retorno = oProcessamento.ProcessarVenda(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); switch (retorno) { case Enumeradores.RetornoProcessamento.Processado: this.Aprovar(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Aprovar.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CancelarAccertify: this.Fraude(venda); //cancelar ingressos oVendaBilheteria.CancelarVenda(venda, true); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.CancelarVenda.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.AguardarAccertify: case Enumeradores.RetornoProcessamento.Timeout: this.Analisar(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Analisar.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.SolicitarDocumentos: this.SolicitarDocumentos(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.SolicitarDocumentos.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CancelarSemFraude: this.CancelarSemFraude(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.CancelarSemFraude.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CartaoInvalido: LogUtil.Error(string.Format("##HammerHead.ProcessandoVenda.ERROR## VENDA: {0}, RETORNO_ACCERTIFY: {1}", venda.ID, retorno)); break; case Enumeradores.RetornoProcessamento.Chargeback: this.Chageback(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Chageback.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.VendaJaCancelada: var fraude = (action == "REJECT"); this.VendaJaCancelada(venda, fraude); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.VendaJaCancelada.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); oVendaBilheteria.CancelarVenda(venda, fraude); break; case Enumeradores.RetornoProcessamento.Bypass: default: this.AtualizarScore(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.AtualizarScore.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; } var saveLog = ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor; LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.BeforeLog## VENDA: {0}, SALVAR_LOG: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, saveLog, sw.ElapsedMilliseconds)); if (saveLog) { SalvarLog.Salvar(string.Format("Venda processada HammerHead. \n Venda: {0} \nScore:{1}\nRecommendation: {2}", venda.Senha, venda.Score.ToString(), venda.RetornoAccertify.ToString()), Enumeradores.TipoEntrada.Sucesso); } sw.Stop(); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.FINISH## VENDA: {0}, TEMPO_DECORRIDO_TOTAL: {1} ms", venda.ID, sw.ElapsedMilliseconds)); }