public RulesFromPriceRS getRulesGen()
        {
            List <VO_SegmentSelect> lvo_SegmentSelect = new List <VO_SegmentSelect>();
            VO_SegmentSelect        vo_SegmentSelect  = new VO_SegmentSelect();
            VO_Pasajero             vo_Pasajero       = new VO_Pasajero();

            vo_Pasajero.SCantidad = "1";
            vo_Pasajero.SCodigo   = VO_Pasajero.ADULTO;

            vo_SegmentSelect.SNumber    = "1";
            vo_SegmentSelect.SEndNumber = "1";

            lvo_SegmentSelect.Add(vo_SegmentSelect);

            List <string> lsCategory = new List <string>();

            lsCategory.Add("2");
            lsCategory.Add("15");
            lsCategory.Add("16");
            lsCategory.Add("19");
            lsCategory.Add("22");

            RulesFromPriceRS oRulesFromPriceRS = new RulesFromPriceRS();

            VO_RulesFromPriceRQ vo_RulesFromPriceRQ = new VO_RulesFromPriceRQ(lsCategory, vo_Pasajero, lvo_SegmentSelect, string.Empty, string.Empty);

            oRulesFromPriceRS = getRules(vo_RulesFromPriceRQ);
            // termina metodo
            return(oRulesFromPriceRS);
        }
        public RulesFromPriceRS getRules(VO_RulesFromPriceRQ vo_RulesFromPriceRQ)
        {
            RulesFromPriceRS oRulesFromPriceRS = new RulesFromPriceRS();

            objvo_Credentials = Ssoft.Utils.clsSesiones.getCredentials();
            MessageHeader strMensaje = clsSabreBase.RulesFromPrice();

            try
            {
                if (strMensaje != null)
                {
                    int iCountCategory = vo_RulesFromPriceRQ.LsRuleCategoryNumber.Count;
                    int iCountSegment  = vo_RulesFromPriceRQ.LvoSegmentSelect.Count;
                    RulesFromPriceRQ          oRulesFromPriceRQ = new RulesFromPriceRQ();
                    RulesFromPriceRQPOS       oPOS       = new RulesFromPriceRQPOS();
                    RulesFromPriceRQPOSSource oPOSSource = new RulesFromPriceRQPOSSource();

                    oPOSSource.PseudoCityCode = objvo_Credentials.Pcc;//ConfigurationManager.AppSettings["Sabre_Ipcc"];
                    oPOS.Source           = oPOSSource;
                    oRulesFromPriceRQ.POS = oPOS;

                    //clase
                    RulesFromPriceRQRuleReqInfo                oRuleReqInfo              = new RulesFromPriceRQRuleReqInfo();
                    RulesFromPriceRQRuleReqInfoFareBasis       oRuleReqInfoFareBasis     = new RulesFromPriceRQRuleReqInfoFareBasis();
                    RulesFromPriceRQRuleReqInfoPassenger       oRuleReqInfoPassenger     = new RulesFromPriceRQRuleReqInfoPassenger();
                    RulesFromPriceRQRuleReqInfoRuleCategory[]  oRuleReqInfoRuleCategorys = new RulesFromPriceRQRuleReqInfoRuleCategory[iCountCategory];
                    RulesFromPriceRQRuleReqInfoRuleCategory    oRuleReqInfoRuleCategory  = new RulesFromPriceRQRuleReqInfoRuleCategory();
                    RulesFromPriceRQRuleReqInfoSegmentSelect[] oRuleReqInfoSegmentSelecs = new RulesFromPriceRQRuleReqInfoSegmentSelect[iCountSegment];
                    RulesFromPriceRQRuleReqInfoSegmentSelect   oRuleReqInfoSegmentSelec  = new RulesFromPriceRQRuleReqInfoSegmentSelect();

                    oRuleReqInfoPassenger.TypeNumber = vo_RulesFromPriceRQ.VPassenger.SCantidad;
                    oRuleReqInfoPassenger.Code       = vo_RulesFromPriceRQ.VPassenger.SCodigo;

                    for (int i = 0; i < iCountCategory; i++)
                    {
                        oRuleReqInfoRuleCategory.Number = vo_RulesFromPriceRQ.LsRuleCategoryNumber[i];
                        oRuleReqInfoRuleCategorys[i]    = oRuleReqInfoRuleCategory;
                    }

                    for (int i = 0; i < iCountSegment; i++)
                    {
                        oRuleReqInfoSegmentSelec.Number = vo_RulesFromPriceRQ.LvoSegmentSelect[i].SNumber;
                        //oRuleReqInfoSegmentSelec.EndNumber = vo_RulesFromPriceRQ.LvoSegmentSelect[i].SEndNumber;
                        oRuleReqInfoSegmentSelecs[i] = oRuleReqInfoSegmentSelec;
                    }

                    if (!vo_RulesFromPriceRQ.SFareBasisCode.Length.Equals(0))
                    {
                        oRuleReqInfoFareBasis.Code = vo_RulesFromPriceRQ.SFareBasisCode;
                    }

                    oRuleReqInfo.FareBasis     = oRuleReqInfoFareBasis;
                    oRuleReqInfo.Passenger     = oRuleReqInfoPassenger;
                    oRuleReqInfo.RuleCategory  = oRuleReqInfoRuleCategorys;
                    oRuleReqInfo.SegmentSelect = oRuleReqInfoSegmentSelecs;

                    oRulesFromPriceRQ.RuleReqInfo = oRuleReqInfo;

                    RulesFromPriceRQTPA_Extensions oTPA_Extensions = new RulesFromPriceRQTPA_Extensions();
                    RulesFromPriceRQTPA_ExtensionsMessagingDetails          oTPA_ExtensionsMessagingDetails          = new RulesFromPriceRQTPA_ExtensionsMessagingDetails();
                    RulesFromPriceRQTPA_ExtensionsMessagingDetailsMDRSubset oTPA_ExtensionsMessagingDetailsMDRSubset = new RulesFromPriceRQTPA_ExtensionsMessagingDetailsMDRSubset();

                    if (!vo_RulesFromPriceRQ.SMDRSubset.Length.Equals(0))
                    {
                        oTPA_ExtensionsMessagingDetailsMDRSubset.Code = vo_RulesFromPriceRQ.SMDRSubset;
                    }

                    oTPA_ExtensionsMessagingDetails.MDRSubset = oTPA_ExtensionsMessagingDetailsMDRSubset;
                    oTPA_Extensions.MessagingDetails          = oTPA_ExtensionsMessagingDetails;

                    oRulesFromPriceRQ.TPA_Extensions = oTPA_Extensions;

                    oRulesFromPriceRQ.Version = clsSabreBase.RULES_FROM_PRICE_VERSION;

                    Security oSecurity = new Security();
                    oSecurity.BinarySecurityToken = strSesion;

                    RulesFromPriceService oRulesFromPriceService = new RulesFromPriceService();
                    oRulesFromPriceService.MessageHeaderValue = strMensaje;
                    oRulesFromPriceService.SecurityValue      = oSecurity;
                    oRulesFromPriceRS = oRulesFromPriceService.RulesFromPriceRQ(oRulesFromPriceRQ);
                }
                if (oRulesFromPriceRS.Errors != null)
                {
                    //clsParametros cMensaje = new clsParametros();
                    //cMensaje.Id = 0;
                    //cMensaje.Code = oRulesFromPriceRS.Errors.Error.ErrorCode;
                    //cMensaje.Info = oRulesFromPriceRS.Errors.Error.ErrorInfo.Message;
                    //cMensaje.Message = oRulesFromPriceRS.Errors.Error.ErrorMessage;
                    //cMensaje.Severity = oRulesFromPriceRS.Errors.Error.Severity;
                    //cMensaje.Tipo = clsTipoError.WebServices;
                    //cMensaje.Metodo = "RulesFromPriceRS";
                    //cMensaje.Complemento = "Reglas de tarifas aereas";
                    //ExceptionHandled.Publicar(cMensaje);
                }
            }
            catch
            {
                //clsParametros cMensaje = new clsParametros();
                //cMensaje.Id = 0;
                //cMensaje.Message = Ex.Message;
                //cMensaje.Severity = clsSeveridad.Alta;
                //cMensaje.Tipo = clsTipoError.WebServices;
                //cMensaje.Metodo = "RulesFromPriceRS";
                //cMensaje.Complemento = "Reglas de tarifas aereas";
                //cMensaje.Source = Ex.Source;
                //cMensaje.StackTrace = Ex.StackTrace;
                //ExceptionHandled.Publicar(cMensaje);
            }
            return(oRulesFromPriceRS);
        }