Example #1
0
        public AirTicketRS getAirTicketRS(VO_PrintersTicketsRQ vo_PrintersTicketsRQ)
        {
            /*METODO PRINCICPAL QUE RETORNA EL OBJETO DE RESULTADOS DE SABRE*/
            StringBuilder consulta    = new StringBuilder();
            clsParametros cParametros = new clsParametros();

            cParametros.TipoWs = Enum_ProveedorWebServices.Sabre;
            AirTicketRQ.AirTicketRQ oAirTicketRQ = new WS_SsoftSabre.AirTicketRQ.AirTicketRQ();
            AirTicketRS             oAirTicketRS = new AirTicketRS();

            objvo_Credentials = Ssoft.Utils.clsSesiones.getCredentials();
            try
            {
                List <string>             lsContadorOpciones = new List <string>();
                AirTicketRQ.MessageHeader Mensaje_           = clsSabreBase.AirTicket();

                if (Mensaje_ != null)
                {
                    AirTicketRQ.Security Seguridad_ = new AirTicketRQ.Security();
                    Seguridad_.BinarySecurityToken = Session_;

                    #region [ POS ]
                    AirTicketRQPOS       oAirTicketRQPOS       = new AirTicketRQPOS();
                    AirTicketRQPOSSource oAirTicketRQPOSSource = new AirTicketRQPOSSource();

                    oAirTicketRQPOSSource.PseudoCityCode = objvo_Credentials.Pcc;//ConfigurationManager.AppSettings["Sabre_Ipcc"];
                    oAirTicketRQPOS.Source = oAirTicketRQPOSSource;
                    oAirTicketRQ.POS       = oAirTicketRQPOS;
                    #endregion

                    #region [ VERSION ]
                    oAirTicketRQ.Version = clsSabreBase.SABRE_VERSION_AIRTICKET;
                    #endregion

                    #region [ DESIGNATEPRINTERS ]

                    AirTicketRQOptionalQualifiers oAirTicketRQOptionalQualifiers = new AirTicketRQOptionalQualifiers();
                    AirTicketRQOptionalQualifiersPricingQualifiers             oPricingQualifiers            = new AirTicketRQOptionalQualifiersPricingQualifiers();
                    AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[] oPricingQualifiersBasicPrices = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[vo_PrintersTicketsRQ.PQNumber.Count];
                    AirTicketRQOptionalQualifiersMiscQualifiers           oMiscQualifiers           = new AirTicketRQOptionalQualifiersMiscQualifiers();
                    AirTicketRQOptionalQualifiersMiscQualifiersCommission oMiscQualifiersCommission = new AirTicketRQOptionalQualifiersMiscQualifiersCommission();
                    int iPosPQ = 0;
                    foreach (string sPQNumber in vo_PrintersTicketsRQ.PQNumber)
                    {
                        AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice oPricingQualifiersBasicPrice = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice();
                        oPricingQualifiersBasicPrice.PQNumber = vo_PrintersTicketsRQ.PQNumber[iPosPQ].ToString();

                        //oPricingQualifiersBasicPrice.EndPQNumber = vo_PrintersTicketsRQ.EndPQNumber;
                        oPricingQualifiersBasicPrices[iPosPQ] = oPricingQualifiersBasicPrice;
                        iPosPQ++;
                    }
                    oPricingQualifiers.BasicPrice = oPricingQualifiersBasicPrices;
                    oAirTicketRQOptionalQualifiers.PricingQualifiers = oPricingQualifiers;

                    oMiscQualifiersCommission.Percentage = vo_PrintersTicketsRQ.CommisionPercent;
                    oMiscQualifiers.Commission           = oMiscQualifiersCommission;

                    oAirTicketRQ.OptionalQualifiers = oAirTicketRQOptionalQualifiers;

                    #endregion

                    AirTicketService oAirTicketService = new AirTicketService();

                    oAirTicketService.MessageHeaderValue = Mensaje_;
                    oAirTicketService.SecurityValue      = Seguridad_;
                    oAirTicketService.Url = objvo_Credentials.UrlWebServices;

                    oAirTicketRS = oAirTicketService.AirTicketRQ(oAirTicketRQ);
                    if (oAirTicketRS.Errors != null)
                    {
                        cParametros.Id          = 0;
                        cParametros.Code        = oAirTicketRS.Errors.Error.ErrorCode;
                        cParametros.Info        = oAirTicketRS.Errors.Error.ErrorInfo.Message;
                        cParametros.Message     = oAirTicketRS.Errors.Error.ErrorMessage;
                        cParametros.Severity    = oAirTicketRS.Errors.Error.Severity;
                        cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand;
                        cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                        cParametros.Tipo        = clsTipoError.WebServices;
                        consulta.AppendLine("Credenciales: ");
                        try
                        {
                            if (objvo_Credentials != null)
                            {
                                consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc);
                                consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc);
                                consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber);
                                consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio);
                                consulta.AppendLine("Session Sabre: " + Session_.ToString());
                                consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices);
                            }
                        }
                        catch { }
                        cParametros.TargetSite = consulta.ToString();
                        try
                        {
                            clsCache cCache = new csCache().cCache();
                            if (cCache != null)
                            {
                                cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString();
                            }
                            else
                            {
                                cParametros.Source = "Sesion Local: No hay cache ";
                            }
                        }
                        catch
                        {
                            cParametros.Source = "Sesion Local: Error ";
                        }
                        ExceptionHandled.Publicar(cParametros);
                        try
                        {
                            Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al emitir tiquetes");
                        }
                        catch { }
                    }
                    else
                    {
                        cParametros.Id      = 1;
                        cParametros.Message = oAirTicketRS.Success;
                        cParametros.TipoLog = Enum_Error.Transac;
                        consulta.AppendLine("Credenciales: ");
                        try
                        {
                            if (objvo_Credentials != null)
                            {
                                consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc);
                                consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc);
                                consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber);
                                consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio);
                                consulta.AppendLine("Session Sabre: " + Session_.ToString());
                                consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices);
                            }
                        }
                        catch { }
                        cParametros.TargetSite = consulta.ToString();
                        try
                        {
                            clsCache cCache = new csCache().cCache();
                            if (cCache != null)
                            {
                                cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString();
                            }
                            else
                            {
                                cParametros.Source = "Sesion Local: No hay cache ";
                            }
                        }
                        catch
                        {
                            cParametros.Source = "Sesion Local: Error ";
                        }
                        cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                        cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand;
                        cParametros.Tipo        = clsTipoError.WebServices;
                        cParametros.Severity    = clsSeveridad.Moderada;
                        ExceptionHandled.Publicar(cParametros);
                    }
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id         = 0;
                cParametros.Message    = Ex.Message;
                cParametros.StackTrace = Ex.StackTrace;
                cParametros.Source     = Ex.Source;
                cParametros.TargetSite = Ex.TargetSite.ToString();
                cParametros.Severity   = clsSeveridad.Alta;
                cParametros.Metodo     = System.Reflection.MethodBase.GetCurrentMethod().Name;
                cParametros.Tipo       = clsTipoError.WebServices;
                ExceptionHandled.Publicar(cParametros);
                try
                {
                    Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al Emitir tiquetes");
                }
                catch { }
            }
            return(oAirTicketRS);
        }
Example #2
0
        public void Call()
        {
            try
            {
                var request = new AirTicketRQ
                {
                    POS = new AirTicketRQPOS()
                    {
                        Source = new AirTicketRQPOSSource()
                        {
                            PseudoCityCode = VolarisResources.PseudoCodeCity
                        }
                    },
                    Version = VolarisResources.AirTicketServiceVersion
                };

                var creditCardInformation = Reservation.Payment.CreditCardInformation;

                request.OptionalQualifiers = new AirTicketRQOptionalQualifiers()
                {
                    FOPQualifiers = new AirTicketRQOptionalQualifiersFOPQualifiers()
                    {
                        SingleFOP =
                            new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOP
                                ()
                        {
                            CCInfo =
                                new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfo
                                    ()
                            {
                                CreditCardNumber =
                                    new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardNumber
                                        ()
                                {
                                    Code =
                                        creditCardInformation
                                        .
                                        CreditCardNumber
                                },
                                CreditCardExpiration
                                    =
                                        new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardExpiration
                                            ()
                                    {
                                    ExpireDate
                                        =
                                            creditCardInformation
                                            .
                                            ExpirationDate
                                            .
                                            ToString
                                                ("yyyy-MM",
                                                new CultureInfo
                                                    ("en-US"))
                                    },
                                ManualApproval =
                                    new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoManualApproval
                                        ()
                                {
                                    Code = Reservation.Payment.ManualApprovalCode
                                },
                                CreditCardVendor =
                                    new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardVendor
                                        ()
                                {
                                    Code = Reservation.Payment.CreditCardInformation.CreditCardStringType
                                }
                            },
                            Type = "CC"
                        }
                    },
                    PricingQualifiers =
                        new AirTicketRQOptionalQualifiersPricingQualifiers()
                    {
                        BasicPrice = new[]
                        {
                            new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice

                            {
                                PQNumber = "1"
                            },
                        }
                    }
                };

                var service = new AirTicketService
                {
                    MessageHeaderValue = this.GetMessageHeader(),
                    SecurityValue      = new Security()
                    {
                        BinarySecurityToken = this.SecurityToken
                    }
                };
                Serializer.Serialize("AirTicketLLSRQ", request);
                var response = service.AirTicketRQ(request);
                Serializer.Serialize("AirTicketLLSRS", response);
                if (response.Success != null && response.Errors == null)
                {
                    if (response.Text != null)
                    {
                        var result = response.Text.FirstOrDefault(t => !string.IsNullOrEmpty(t));
                        if (!string.IsNullOrEmpty(result))
                        {
                            var responseText = result.Split(' ').Where(s => !string.IsNullOrEmpty(s)).ToList();
                            if (responseText.Any() && responseText.Count > 10)
                            {
                                // Asumiendo que ya se aprobo por PaymentRQ
                                if (!Reservation.Payment.HasBeenApproved)
                                {
                                    var authoCode = responseText[8];
                                    Reservation.Agent.RecievedEmail        = true;
                                    Reservation.Payment.ManualApprovalCode = authoCode;
                                    Reservation.Payment.Status             = VolarisPaymentStatus.Approved;
                                    VolarisLogger.InsertReservation();
                                }
                                Success = true;
                            }
                            else
                            {
                                ErrorMessage = "No se pudo concluir el pago de la reservación, debido a que la tarjeta fue declinada,por favor verifique que los datos sean correctos.";
                                Success      = false;
                                Reservation.Payment.Status = VolarisPaymentStatus.Declined;

                                if (response.Text.Any())
                                {
                                    LogError(response.Text.FirstOrDefault());
                                }
                            }
                        }
                        else
                        {
                            ErrorMessage = "No se pudo concluir el pago de la reservación, debido a que la tarjeta fue declinada,por favor verifique que los datos sean correctos.";
                            Success      = false;
                            Reservation.Payment.Status = VolarisPaymentStatus.Declined;
                            if (response.Text.Any())
                            {
                                LogError(response.Text.FirstOrDefault());
                            }
                        }
                    }
                }
                else
                {
                    Reservation.Payment.Status = VolarisPaymentStatus.Declined;
                    var error = response.Errors.Error.ErrorInfo.Message;
                    LogError(error);
                    Success = false;
                }
            }
            catch (Exception exe)
            {
                Reservation.Payment.Status = VolarisPaymentStatus.Declined;
                Success = false;
                LogError(exe.Message);
            }
        }