private void createRequest(string pcc)
        {
            request = new BargainFinderMaxRQv310Srvc.OTA_AirLowFareSearchRQ();
            request.AvailableFlightsOnly = true;
            request.Version = "3.1.0";

            request.POS = new SourceType[1];
            SourceType source = new SourceType();

            source.PseudoCityCode                      = pcc;
            source.RequestorID                         = new UniqueID_Type();
            source.RequestorID.ID                      = "1";
            source.RequestorID.Type                    = "1";
            source.RequestorID.CompanyName             = new CompanyNameType();
            source.RequestorID.CompanyName.Code        = "TN";
            source.RequestorID.CompanyName.CodeContext = "Context";
            request.POS[0] = source;

            OTA_AirLowFareSearchRQOriginDestinationInformation originDestination = new OTA_AirLowFareSearchRQOriginDestinationInformation();

            originDestination.OriginLocation = new OriginDestinationInformationTypeOriginLocation();
            originDestination.OriginLocation.LocationCode      = "BCN";
            originDestination.DestinationLocation              = new OriginDestinationInformationTypeDestinationLocation();
            originDestination.DestinationLocation.LocationCode = "MAD";
            originDestination.ItemElementName    = ItemChoiceType.DepartureDateTime;
            originDestination.Item               = "2017-09-10T12:00:00";
            originDestination.RPH                = "1";
            request.OriginDestinationInformation = new OTA_AirLowFareSearchRQOriginDestinationInformation[1] {
                originDestination
            };

            request.TravelerInfoSummary = new TravelerInfoSummaryType()
            {
                AirTravelerAvail = new TravelerInformationType[1]
            };
            request.TravelerInfoSummary.AirTravelerAvail[0] = new TravelerInformationType()
            {
                PassengerTypeQuantity = new PassengerTypeQuantityType[1]
            };
            PassengerTypeQuantityType passenger = new PassengerTypeQuantityType()
            {
                Quantity = "1",
                Code     = "ADT"
            };

            request.TravelerInfoSummary.AirTravelerAvail[0].PassengerTypeQuantity[0] = passenger;

            request.TravelerInfoSummary.PriceRequestInformation = new PriceRequestInformationType();
            request.TravelerInfoSummary.PriceRequestInformation.CurrencyCode = "USD";
            //PriceRequestInformationTypeNegotiatedFareCode nego = new PriceRequestInformationTypeNegotiatedFareCode();
            //nego.Code = "ABC";
            //request.TravelerInfoSummary.PriceRequestInformation.Items = new object[1] { nego };
            request.TPA_Extensions = new OTA_AirLowFareSearchRQTPA_Extensions();
            request.TPA_Extensions.IntelliSellTransaction                  = new TransactionType();
            request.TPA_Extensions.IntelliSellTransaction.RequestType      = new TransactionTypeRequestType();
            request.TPA_Extensions.IntelliSellTransaction.RequestType.Name = "50ITIN";
        }
Esempio n. 2
0
        /// <summary>
        /// Creates the request.
        /// </summary>
        /// <returns></returns>
        private OTA_AirLowFareSearchRQ CreateRequest()
        {
            var request = new OTA_AirLowFareSearchRQ
            {
                POS = new OTA_AirLowFareSearchRQPOS
                {
                    Source = new OTA_AirLowFareSearchRQPOSSource
                    {
                        PseudoCityCode = VolarisResources.PseudoCodeCity
                    }
                },
                TimeStamp = DateTime.Now.ToString("s"),
                Version   = VolarisResources.LowSearchFareServiceVersion,
                PriceRequestInformation = new OTA_AirLowFareSearchRQPriceRequestInformation()
            };

            return(request);
        }
Esempio n. 3
0
        public async Task <Ey.Model.Results.FlightResults> GetFlightFareQuotes(SearchCriteria searchCriteria, SecurityData securityData)
        {
            Builders.FlightFareQuoteBuilder fltServiceRqRsBuilder = new Builders.FlightFareQuoteBuilder();
            var secHeader = new Security()
            {
                BinarySecurityToken = securityData.SabreToken
            };
            var msgHeader = fltServiceRqRsBuilder.GetFlightFareMessageHeader();
            OTA_AirLowFareSearchRQ frReq = fltServiceRqRsBuilder.GetFlightFareSearchRequest(searchCriteria);

            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
            var res = this._sabreService.SSSAdvShopRQ(new SSSAdvShopRQRequest()
            {
                MessageHeader = msgHeader, Security = secHeader, OTA_AirLowFareSearchRQ = frReq
            });

            return(await fltServiceRqRsBuilder.BuildResponse(res.OTA_AirLowFareSearchRS, frReq.TravelerInfoSummary.PriceRequestInformation.CurrencyCode));
        }
Esempio n. 4
0
 private void CreateRequest(string pcc, bool compressed)
 {
     request = new OTA_AirLowFareSearchRQ()
     {
         Version = "3.4.0",
         POS     = new SourceType[]
         {
             new SourceType()
             {
                 PseudoCityCode = pcc,
                 RequestorID    = new UniqueID_Type()
                 {
                     ID          = "1",
                     Type        = "1",
                     CompanyName = new CompanyNameType()
                     {
                         Code  = "TN",
                         Value = "TN"
                     }
                 }
             }
         },
         OriginDestinationInformation = new OTA_AirLowFareSearchRQOriginDestinationInformation[]
         {
             new OTA_AirLowFareSearchRQOriginDestinationInformation()
             {
                 RPH             = "1",
                 Item            = "2018-09-21T11:00:00",
                 ItemElementName = ItemChoiceType.DepartureDateTime,
                 OriginLocation  = new OriginDestinationInformationTypeOriginLocation()
                 {
                     LocationCode = "MVD"
                 },
                 DestinationLocation = new OriginDestinationInformationTypeDestinationLocation()
                 {
                     LocationCode = "KRK"
                 }
             },
             new OTA_AirLowFareSearchRQOriginDestinationInformation()
             {
                 RPH             = "2",
                 Item            = "2018-09-28T11:00:00",
                 ItemElementName = ItemChoiceType.DepartureDateTime,
                 OriginLocation  = new OriginDestinationInformationTypeOriginLocation()
                 {
                     LocationCode = "KRK"
                 },
                 DestinationLocation = new OriginDestinationInformationTypeDestinationLocation()
                 {
                     LocationCode = "MVD"
                 }
             }
         },
         TravelerInfoSummary = new TravelerInfoSummaryType()
         {
             AirTravelerAvail = new TravelerInformationType[]
             {
                 new TravelerInformationType()
                 {
                     PassengerTypeQuantity = new PassengerTypeQuantityType[]
                     {
                         new PassengerTypeQuantityType()
                         {
                             Code     = "ADT",
                             Quantity = "1"
                         }
                     }
                 }
             }
         },
         TPA_Extensions = new OTA_AirLowFareSearchRQTPA_Extensions()
         {
             IntelliSellTransaction = new TransactionType()
             {
                 RequestType = new TransactionTypeRequestType()
                 {
                     Name = "50ITINS"
                 },
                 CompressResponse = new TransactionTypeCompressResponse()
                 {
                     Value = compressed
                 }
             }
         }
     };
 }
        public OTA_AirLowFareSearchRS AirLowFareSearchMethod(string convid, string ipcc, string securitytoken, string origin, string destination, string FechaSalida, string sCurrency)
        {
            OTA_AirLowFareSearchRS resp = new OTA_AirLowFareSearchRS();

            try
            {
                OTA_AirLowFareSearchService serviceObj = new OTA_AirLowFareSearchService()
                {
                    MessageHeaderValue = new MessageHeader {
                        From = new From {
                            PartyId = new PartyId[] { new PartyId {
                                                          Value = "WebServiceClient"
                                                      } }
                        }, To = new To {
                            PartyId = new PartyId[] { new PartyId {
                                                          Value = "WebServiceSupplier"
                                                      } }
                        }, ConversationId = convid, CPAId = ipcc, Action = "OTA_AirLowFareSearchLLSRQ", Service = new Service {
                            Value = "AirLowFareSearch"
                        }, MessageData = new MessageData {
                            MessageId = "mid:[email protected]", Timestamp = DateTime.UtcNow.ToString("s")
                        }
                    }, SecurityValue = new Security {
                        BinarySecurityToken = securitytoken
                    }
                };
                OTA_AirLowFareSearchRQ req = new OTA_AirLowFareSearchRQ()
                {
                    POS = new OTA_AirLowFareSearchRQPOS {
                        Source = new OTA_AirLowFareSearchRQPOSSource {
                            PseudoCityCode = ipcc
                        }
                    }, Version = "1.14.1", OriginDestinationInformation = new OTA_AirLowFareSearchRQFlightSegment[] { new OTA_AirLowFareSearchRQFlightSegment {
                                                                                                                          OriginLocation = new OTA_AirLowFareSearchRQFlightSegmentOriginLocation {
                                                                                                                              LocationCode = origin
                                                                                                                          }, DestinationLocation = new OTA_AirLowFareSearchRQFlightSegmentDestinationLocation {
                                                                                                                              LocationCode = destination
                                                                                                                          }, DepartureDateTime = FechaSalida, ConnectionInd = "O", ResBookDesigCode = "Y", RPH = "1"
                                                                                                                      } }, PriceRequestInformation = new OTA_AirLowFareSearchRQPriceRequestInformation {
                        OptionalQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiers {
                            PricingQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiers {
                                CurrencyCode = sCurrency, PassengerType = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersPassengerType[] { new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersPassengerType {
                                                                                                                                                                                    Quantity = "1", Code = "ADT"
                                                                                                                                                                                } }, Taxes = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersTaxes {
                                    NoTax = true
                                }
                            }, TimeQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersTimeQualifiers {
                                NumHours = "9",
                            }
                        }
                    }, TimeStamp = DateTime.UtcNow.ToString("s")
                };
                resp = serviceObj.OTA_AirLowFareSearchRQ(req);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
                //OTA_AirLowFareSearchService serviceObj = new OTA_AirLowFareSearchService() { MessageHeaderValue = new MessageHeader { From = new From { PartyId = new PartyId[] { new PartyId { Value = "WebServiceClient" } } }, To = new To { PartyId = new PartyId[] { new PartyId { Value = "WebServiceSupplier" } } }, ConversationId = convid, CPAId = ipcc, Action = "OTA_AirLowFareSearchLLSRQ", Service = new Service { Value = "AirLowFareSearch" }, MessageData = new MessageData { MessageId = "mid:[email protected]", Timestamp = DateTime.UtcNow.ToString("s") } }, SecurityValue = new Security { BinarySecurityToken = securitytoken } };
                //OTA_AirLowFareSearchRQ req = new OTA_AirLowFareSearchRQ() { POS = new OTA_AirLowFareSearchRQPOS { Source = new OTA_AirLowFareSearchRQPOSSource { PseudoCityCode = ipcc } }, Version = "1.14.1", OriginDestinationInformation = new OTA_AirLowFareSearchRQFlightSegment[] { new OTA_AirLowFareSearchRQFlightSegment { OriginLocation = new OTA_AirLowFareSearchRQFlightSegmentOriginLocation { LocationCode = origin }, DestinationLocation = new OTA_AirLowFareSearchRQFlightSegmentDestinationLocation { LocationCode = destination }, DepartureDateTime = FechaSalida, ConnectionInd = "O", ResBookDesigCode = "Y", RPH = "1" } }, PriceRequestInformation = new OTA_AirLowFareSearchRQPriceRequestInformation { OptionalQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiers { PricingQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiers { CurrencyCode = sCurrency, PassengerType = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersPassengerType[] { new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersPassengerType { Quantity = "1", Code = "ADT" } }, Taxes = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersPricingQualifiersTaxes { NoTax = true } }, TimeQualifiers = new OTA_AirLowFareSearchRQPriceRequestInformationOptionalQualifiersTimeQualifiers { NumHours = "9", } } }, TimeStamp = DateTime.UtcNow.ToString("s") };
                //resp = serviceObj.OTA_AirLowFareSearchRQ(req);
            }
            return(resp);
        }
Esempio n. 6
0
        /// <summary>
        /// getBargainFinderMaxRQ returns up to 200 diferent options for the availability
        /// </summary>
        /// <param name="vo_BargainFinderMax_ADRQ"></param>
        public override object getExecuteSWS(params object[] ota_AirPriceRQ)
        {
            VO_BargainFinderMax_ADRQ vo_BargainFinderMax_ADRQ = (VO_BargainFinderMax_ADRQ)ota_AirPriceRQ[0];

            OTA_AirLowFareSearchRQ ota_AirLowFareSearchRQ = new OTA_AirLowFareSearchRQ();

            session_ = AutenticacionSabre.GET_SabreSession();

            objvo_Credentials = Ssoft.Utils.clsSesiones.getCredentials();

            SWS_BargainFinderMaxRQ.Security security = new SWS_BargainFinderMaxRQ.Security();
            security.BinarySecurityToken = session_;// vo_BargainFinderMax_ADRQ.Vo_SessionCreateRQ.;

            //exluimos aerolineas
            //hceron
            //29042013
            csVuelos      cVuelos        = new csVuelos();
            List <string> lsExcluirAerol = cVuelos.ExcluirAerolineas();

            #region [ POS ]
            //Source
            SourceType[] sourceTypes = new SourceType[1];
            SourceType   sourceType  = new SourceType();

            VO_SessionCreateRQ vo_SessionCreateRQ = vo_BargainFinderMax_ADRQ.Vo_SessionCreateRQ;
            sourceType.PseudoCityCode = objvo_Credentials.Ipcc;

            //RequestorID
            UniqueID_Type uniqueID_Type = new UniqueID_Type();
            uniqueID_Type.ID   = "1"; //"ID" (required) Not used for processing. Use a value of "1".
            uniqueID_Type.Type = "1"; //"Type" (required) Not used for processing. Use a value of "1".

            CompanyNameType companyNameType = new CompanyNameType();
            companyNameType.Code      = "TN";
            uniqueID_Type.CompanyName = companyNameType; //"Code" (required) Customer code. Use the value "TN".
            sourceType.RequestorID    = uniqueID_Type;

            sourceTypes[0]             = sourceType;
            ota_AirLowFareSearchRQ.POS = sourceTypes;
            #endregion

            #region [ VERSION ]
            ota_AirLowFareSearchRQ.Version = WS_SsoftSabre.Air.Constant.SWS_Sevirce_Versions.BARGAINFINDERMAXRQ;
            #endregion

            #region [ ORIGINDESTINATIONINFORMATION ]

            List <string> lsContadorOpciones = new List <string>();
            List <VO_OriginDestinationInformation> lvo_OriginDestinationInformation = vo_BargainFinderMax_ADRQ.Lvo_Segments;

            if (lvo_OriginDestinationInformation == null)
            {
                throw new Exception("lvo_OriginDestinationInformation is null,Pls check");
            }
            else
            {
                int iSegmentsCounter = 0;
                OTA_AirLowFareSearchRQOriginDestinationInformation[] aota_AirLowFareSearchRQOriginDestinationInformation =
                    new OTA_AirLowFareSearchRQOriginDestinationInformation[lvo_OriginDestinationInformation.Count];

                int iOriginDestinationInformation = 0;
                foreach (VO_OriginDestinationInformation vo_OriginDestinationInformation in lvo_OriginDestinationInformation)
                {
                    WS_SsoftSabre.SWS_BargainFinderMaxRQ.OTA_AirLowFareSearchRQOriginDestinationInformation ota_AirLowFareSearchRQOriginDestinationInformation = new WS_SsoftSabre.SWS_BargainFinderMaxRQ.OTA_AirLowFareSearchRQOriginDestinationInformation();

                    TimeInstantType timeInstantType = new TimeInstantType();
                    timeInstantType.Value = Convert.ToDateTime(vo_OriginDestinationInformation.SFechaSalida).ToString(Constant.FORMATO_TIME_STAMP);
                    ota_AirLowFareSearchRQOriginDestinationInformation.Item            = timeInstantType;
                    ota_AirLowFareSearchRQOriginDestinationInformation.ItemElementName = ItemChoiceType.DepartureDateTime;

                    ota_AirLowFareSearchRQOriginDestinationInformation.DepartureWindow = vo_OriginDestinationInformation.SIntervaloSalida;
                    ota_AirLowFareSearchRQOriginDestinationInformation.ArrivalWindow   = vo_OriginDestinationInformation.SIntervaloSalida;

                    //OriginLocation

                    LocationType originLocationType = new LocationType();
                    originLocationType.CodeContext  = vo_OriginDestinationInformation.Vo_AeropuertoOrigen.SContexto;
                    originLocationType.LocationCode = vo_OriginDestinationInformation.Vo_AeropuertoOrigen.SCodigo;
                    ota_AirLowFareSearchRQOriginDestinationInformation.OriginLocation = originLocationType;

                    //DestinationLocation

                    LocationType destinationLocationType = new LocationType();
                    destinationLocationType.LocationCode = vo_OriginDestinationInformation.Vo_AeropuertoDestino.SCodigo;
                    destinationLocationType.CodeContext  = vo_OriginDestinationInformation.Vo_AeropuertoDestino.SContexto;
                    ota_AirLowFareSearchRQOriginDestinationInformation.DestinationLocation = destinationLocationType;

                    #region [ TPA_EXTENSIONS ]

                    OTA_AirLowFareSearchRQOriginDestinationInformationTPA_Extensions originDestinationInformationTPA_Extensions =
                        new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_Extensions();

                    //SegmentType
                    OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentType oTPA_ExtensionsSegmentType =
                        new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentType();

                    oTPA_ExtensionsSegmentType.CodeSpecified = true;
                    switch (vo_OriginDestinationInformation.OTipoSegmento.ToString())
                    {
                    case TipoSegmento.O:
                        oTPA_ExtensionsSegmentType.Code = OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentTypeCode.O;
                        break;

                    case TipoSegmento.ARUNK:
                        oTPA_ExtensionsSegmentType.Code = OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentTypeCode.ARUNK;
                        break;

                    case TipoSegmento.X:
                        oTPA_ExtensionsSegmentType.Code = OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentTypeCode.X;
                        break;
                    }

                    // oTPA_ExtensionsSegmentType.Code = (OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsSegmentTypeCode)vo_OriginDestinationInformation.;
                    originDestinationInformationTPA_Extensions.SegmentType = oTPA_ExtensionsSegmentType;

                    //AlternateTime
                    string StrAlternateTime = vo_OriginDestinationInformation.STiempoAlternativo;
                    if (!String.IsNullOrEmpty(StrAlternateTime))
                    {
                        OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsAlternateTime oTPA_ExtensionsAlternateTime =
                            new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsAlternateTime();

                        oTPA_ExtensionsAlternateTime.PlusMinus = StrAlternateTime;
                        originDestinationInformationTPA_Extensions.AlternateTime = oTPA_ExtensionsAlternateTime;
                    }

                    //CabinPrefrencial
                    //VO_CabinPref vo_CabinPref = vo_OriginDestinationInformation.;
                    //if (vo_CabinPref != null)
                    //{
                    //CabinPrefType cabinPrefType = new CabinPrefType();
                    //cabinPrefType.Cabin = (CabinType)vo_CabinPref.Enum_CabinType;
                    //cabinPrefType.CabinSpecified = true;
                    //cabinPrefType.PreferLevel = (PreferLevelType)vo_CabinPref.Enum_PreferLevelType;
                    //originDestinationInformationTPA_Extensions.CabinPref = cabinPrefType;
                    // }

                    //ConnectionTime por definir usa
                    //hceron
                    int intConnectionTimeMax = 0; //vo_OriginDestinationInformation.IntConnectionTimeMax;
                    int intConnectionTimeMin = 0; //vo_OriginDestinationInformation.IntConnectionTimeMin;
                    if (intConnectionTimeMax > 0 && intConnectionTimeMin > 0)
                    {
                        OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsConnectionTime connectionTime = new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsConnectionTime();
                        connectionTime.Max = intConnectionTimeMax.ToString();
                        connectionTime.Min = intConnectionTimeMin.ToString();
                        originDestinationInformationTPA_Extensions.ConnectionTime = connectionTime;
                    }

                    //VendorPref por definr
                    //hceron
                    VO_VendorPref[] vo_VendorPrefs = null;// vo_BargainFinderMax_ADRQ.Vo_VendorPref;

                    if (vo_VendorPrefs != null && vo_VendorPrefs.Length > 0)
                    {
                        int iContadorAerolinea = 0;
                        OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsIncludeVendorPref[] includeVendorPrefs = new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsIncludeVendorPref[vo_VendorPrefs.Length];

                        foreach (string sOpcion in lsContadorOpciones)
                        {
                            foreach (VO_VendorPref Vo_VendorPref in vo_VendorPrefs)
                            {
                                OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsIncludeVendorPref includeVendorPref = new OTA_AirLowFareSearchRQOriginDestinationInformationTPA_ExtensionsIncludeVendorPref();
                                includeVendorPref.Code = Vo_VendorPref.StrCode;
                                includeVendorPrefs.SetValue(includeVendorPref, iContadorAerolinea);
                                iContadorAerolinea++;
                            }
                        }
                        originDestinationInformationTPA_Extensions.IncludeVendorPref = includeVendorPrefs;
                    }

                    //TPA_Extensions
                    ota_AirLowFareSearchRQOriginDestinationInformation.TPA_Extensions = originDestinationInformationTPA_Extensions;

                    #endregion

                    iOriginDestinationInformation = iSegmentsCounter + 1;
                    lsContadorOpciones.Add(iOriginDestinationInformation.ToString());
                    ota_AirLowFareSearchRQOriginDestinationInformation.RPH = iOriginDestinationInformation.ToString();
                    aota_AirLowFareSearchRQOriginDestinationInformation[iSegmentsCounter] =
                        ota_AirLowFareSearchRQOriginDestinationInformation;

                    iSegmentsCounter++;
                }
                ota_AirLowFareSearchRQ.OriginDestinationInformation =
                    aota_AirLowFareSearchRQOriginDestinationInformation;
            }
            #endregion

            #region [ TRAVELPREFERENCES ]

            AirSearchPrefsType airSearchPrefsType = new AirSearchPrefsType();

            AirSearchPrefsType airSearchExcluPrefsType = new AirSearchPrefsType();
            string             sMaximasParadas         = vo_BargainFinderMax_ADRQ.SMaxStopsQuantity;

            if (!String.IsNullOrEmpty(sMaximasParadas))
            {
                if (!sMaximasParadas.Equals("0"))
                {
                    airSearchPrefsType.MaxStopsQuantity = sMaximasParadas;
                }
            }

            VO_CabinPref[] vo_CabinPrefs = null;//vo_BargainFinderMax_ADRQ.Vo_CabinPrefs;
            if (vo_CabinPrefs != null && vo_CabinPrefs.Length > 0)
            {
                int             intCounterCabinPref = 0;
                CabinPrefType[] CabinPrefTypes      = new CabinPrefType[vo_CabinPrefs.Length];
                foreach (VO_CabinPref vo_CabinPref in vo_CabinPrefs)
                {
                    CabinPrefType cabinPrefType = new CabinPrefType();
                    cabinPrefType.Cabin          = (CabinType)vo_CabinPref.Enum_CabinType;
                    cabinPrefType.CabinSpecified = true;
                    cabinPrefType.PreferLevel    = (PreferLevelType)vo_CabinPref.Enum_PreferLevelType;
                    CabinPrefTypes.SetValue(cabinPrefType, intCounterCabinPref);
                    intCounterCabinPref++;
                }
                airSearchPrefsType.CabinPref = CabinPrefTypes;
            }



            //VendorPref
            VO_VendorPref[] lvo_VendorPref = null;//vo_BargainFinderMax_ADRQ.Vo_VendorPref;
            if (lvo_VendorPref != null && lvo_VendorPref.Length > 0)
            {
                int intCounterVendorPref = 0;
                CompanyNamePrefType[] companyNamePrefTypes = new CompanyNamePrefType[lvo_VendorPref.Length];
                foreach (VO_VendorPref vo_VendorPref in lvo_VendorPref)
                {
                    CompanyNamePrefType companyNamePrefType = new CompanyNamePrefType();
                    companyNamePrefType.PreferLevel = (PreferLevelType)vo_VendorPref.Enum_PreferLevelType;
                    companyNamePrefType.Code        = vo_VendorPref.StrCode;
                    companyNamePrefTypes.SetValue(companyNamePrefType, intCounterVendorPref);
                    intCounterVendorPref++;
                }
                airSearchPrefsType.VendorPref = companyNamePrefTypes;
            }


            //Excluir Aerolineas
            //

            #region [ Exlude Airline ]

            if (lsExcluirAerol.Count > 0)
            {
                List <AirSearchPrefsTypeTPA_ExtensionsExcludeVendorPref> companyNameExcludeTypes = new List <AirSearchPrefsTypeTPA_ExtensionsExcludeVendorPref>();

                foreach (string sExludeCode in lsExcluirAerol)
                {
                    AirSearchPrefsTypeTPA_ExtensionsExcludeVendorPref companyNamePrefType = new AirSearchPrefsTypeTPA_ExtensionsExcludeVendorPref();
                    companyNamePrefType.Code = sExludeCode;
                    companyNameExcludeTypes.Add(companyNamePrefType);
                }

                airSearchPrefsType.TPA_Extensions = new AirSearchPrefsTypeTPA_Extensions();
                airSearchPrefsType.TPA_Extensions.ExcludeVendorPref = companyNameExcludeTypes.ToArray();
            }
            #endregion

            //TravelPreferences
            ota_AirLowFareSearchRQ.TravelPreferences = airSearchPrefsType;
            ota_AirLowFareSearchRQ.TravelPreferences.ValidInterlineTicket = true;

            #endregion

            #region [ TRAVELERINFORMATION ]

            TravelerInfoSummaryType travelerInfoSummaryType = new TravelerInfoSummaryType();
            List <VO_Pasajero>      lvo_Passengers          = vo_BargainFinderMax_ADRQ.Lvo_Passengers;

            if (lvo_Passengers == null)
            {
                throw new Exception("lvo_Passengers mandatory");
            }
            else
            {
                TravelerInformationType travelerInformationType = new TravelerInformationType();


                int iContPasajeros = 0;
                int iContPaxTotal  = 0;
                foreach (VO_Pasajero vo_PasajeroTotal in lvo_Passengers)
                {
                    if (vo_PasajeroTotal.SCodigo.Equals("CNN"))
                    {
                        iContPaxTotal += int.Parse(vo_PasajeroTotal.SCantidad);
                    }
                    else
                    {
                        iContPaxTotal++;
                    }
                }
                //best to get search
                //hceron 06062013
                PassengerTypeQuantityType[] passengerTypeQuantityTypes = new PassengerTypeQuantityType[iContPaxTotal];
                #region paxes MAX


                foreach (VO_Pasajero vo_Pasajero in lvo_Passengers)
                {
                    if (vo_Pasajero.SCodigo.Equals("CNN"))
                    {
                        foreach (VO_ClasificaPasajero vo_CatPasajero in vo_Pasajero.LvPasajeroNino)
                        {
                            PassengerTypeQuantityType passengerTypeQuantityType = new PassengerTypeQuantityType();
                            passengerTypeQuantityType.Code             = vo_CatPasajero.SCodigo;
                            passengerTypeQuantityType.Quantity         = vo_CatPasajero.SCantidad;
                            passengerTypeQuantityTypes[iContPasajeros] = passengerTypeQuantityType;
                            iContPasajeros++;
                        }
                    }
                    else
                    {
                        PassengerTypeQuantityType passengerTypeQuantityType = new PassengerTypeQuantityType();


                        passengerTypeQuantityType.Code     = vo_Pasajero.SCodigo;
                        passengerTypeQuantityType.Quantity = vo_Pasajero.SCantidad;

                        passengerTypeQuantityTypes[iContPasajeros] = passengerTypeQuantityType;
                        iContPasajeros++;
                    }
                }
                #endregion
                //foreach (VO_Pasajero vo_Passenger in lvo_Passengers)
                //{
                //    PassengerTypeQuantityType passengerTypeQuantityType = new PassengerTypeQuantityType();
                //    passengerTypeQuantityType.Code = "ADT";//vo_Passenger.;
                //    passengerTypeQuantityType.Quantity = "1";// vo_Passenger.ToString();

                //    passengerTypeQuantityTypes[iContPasajeros] = passengerTypeQuantityType;
                //    iContPasajeros++;
                //}
                travelerInformationType.PassengerTypeQuantity = passengerTypeQuantityTypes;

                TravelerInformationType[] travelerInformationTypes = new TravelerInformationType[] { travelerInformationType };
                travelerInfoSummaryType.AirTravelerAvail = travelerInformationTypes;
            }

            PriceRequestInformationType priceRequestInformationType = new PriceRequestInformationType();
            if (vo_BargainFinderMax_ADRQ.StrNegotiatedFareCode != null && vo_BargainFinderMax_ADRQ.StrNegotiatedFareCode.Length > 0)
            {
                PriceRequestInformationTypeNegotiatedFareCode[] NegotiatedFareCode = new PriceRequestInformationTypeNegotiatedFareCode[1];

                int intContadorCorporateID = 0;
                foreach (string strCorporateID in vo_BargainFinderMax_ADRQ.StrNegotiatedFareCode)
                {
                    NegotiatedFareCode[intContadorCorporateID]          = new PriceRequestInformationTypeNegotiatedFareCode();
                    NegotiatedFareCode[intContadorCorporateID].Code     = vo_BargainFinderMax_ADRQ.StrNegotiatedFareCode[intContadorCorporateID];
                    NegotiatedFareCode[intContadorCorporateID].Supplier = new CompanyNameType[] { new CompanyNameType()
                                                                                                  {
                                                                                                      Code = "AAA"
                                                                                                  } };
                    intContadorCorporateID++;
                }
                priceRequestInformationType.Items = NegotiatedFareCode;
            }

            if (vo_BargainFinderMax_ADRQ.Vo_Priority.isValid())
            {
                PriceRequestInformationTypeTPA_Extensions priceRequestInformationTypeTPA_Extensions = new PriceRequestInformationTypeTPA_Extensions();

                priceRequestInformationTypeTPA_Extensions.Priority = new PriceRequestInformationTypeTPA_ExtensionsPriority()
                {
                    DirectFlights = new PriceRequestInformationTypeTPA_ExtensionsPriorityDirectFlights()
                    {
                        Priority = vo_BargainFinderMax_ADRQ.Vo_Priority.IntDirectFlights
                    },
                    Price = new PriceRequestInformationTypeTPA_ExtensionsPriorityPrice()
                    {
                        Priority = vo_BargainFinderMax_ADRQ.Vo_Priority.IntPrice
                    },
                    Time = new PriceRequestInformationTypeTPA_ExtensionsPriorityTime()
                    {
                        Priority = vo_BargainFinderMax_ADRQ.Vo_Priority.IntTime
                    },
                    Vendor = new PriceRequestInformationTypeTPA_ExtensionsPriorityVendor()
                    {
                        Priority = vo_BargainFinderMax_ADRQ.Vo_Priority.IntVendor
                    }
                };

                priceRequestInformationType.TPA_Extensions = priceRequestInformationTypeTPA_Extensions;
            }

            PriceRequestInformationTypeTPA_Extensions priceRequestInformationTypeTPA_Extensions_tkt = new PriceRequestInformationTypeTPA_Extensions();
            priceRequestInformationTypeTPA_Extensions_tkt.Indicators = new PriceRequestInformationTypeTPA_ExtensionsIndicators()
            {
                ResTicketing = new PriceRequestInformationTypeTPA_ExtensionsIndicatorsResTicketing()
                {
                    Ind = true
                }
            };
            priceRequestInformationType.TPA_Extensions = priceRequestInformationTypeTPA_Extensions_tkt;


            VO_OTA_AirLowFareSearchLLSRQ vo_OTA_AirLowFareSearchLLSRQ = clsSesiones.getParametrosAirBargain();
            if (vo_BargainFinderMax_ADRQ != null)
            {
                priceRequestInformationType.CurrencyCode        = vo_OTA_AirLowFareSearchLLSRQ.SCodMonedaCotizacion.ToString();
                travelerInfoSummaryType.PriceRequestInformation = priceRequestInformationType;
            }
            else
            {
                travelerInfoSummaryType.PriceRequestInformation = priceRequestInformationType;
            }

            ota_AirLowFareSearchRQ.TravelerInfoSummary = travelerInfoSummaryType;

            #endregion

            OTA_AirLowFareSearchRQTPA_Extensions ota_AirLowFareSearchRQTPA_Extensions = new OTA_AirLowFareSearchRQTPA_Extensions();
            TransactionType transactionType = new TransactionType();
            TransactionTypeClientSessionID transactionTypeClientSessionID = new TransactionTypeClientSessionID();
            transactionTypeClientSessionID.Value = session_;
            transactionType.ClientSessionID      = transactionTypeClientSessionID;

            TransactionTypeRequestType transactionTypeRequestType = new TransactionTypeRequestType();
            transactionTypeRequestType.Name = str200;
            switch (vo_BargainFinderMax_ADRQ.Enum_IntelliSellTransaction)
            {
            case Enum_IntelliSellTransaction.BFM_50:
                transactionTypeRequestType.Name = str50;
                break;

            case Enum_IntelliSellTransaction.BFM_100:
                transactionTypeRequestType.Name = str100;
                break;

            case Enum_IntelliSellTransaction.BFM_200:
                transactionTypeRequestType.Name = str200;
                break;
            }

            transactionType.RequestType = transactionTypeRequestType;
            ota_AirLowFareSearchRQTPA_Extensions.IntelliSellTransaction = transactionType;

            ota_AirLowFareSearchRQ.TPA_Extensions = ota_AirLowFareSearchRQTPA_Extensions;

            BargainFinderMaxService bargainFinderMaxService = new BargainFinderMaxService();

            SWS_BargainFinderMaxRQ.MessageHeader messageHeader =
                (SWS_BargainFinderMaxRQ.MessageHeader)getMessageHeader(typeof(MessageHeader), vo_BargainFinderMax_ADRQ.Vo_MessageHeader);
            bargainFinderMaxService.MessageHeaderValue = messageHeader;
            bargainFinderMaxService.SecurityValue      = security;
            OTA_AirLowFareSearchRS ota_AirLowFareSearchRS = bargainFinderMaxService.BargainFinderMaxRQ(ota_AirLowFareSearchRQ);

            //XmlSerializer mySerializer = new XmlSerializer(typeof(OTA_AirLowFareSearchRQ));
            ////To write to a file, create a StreamWriter object.
            //System.IO.StreamWriter myWriter = new System.IO.StreamWriter("D://bfmRQ-Integradov5" + DateTime.Now.Hour + DateTime.Now.Minute + ".xml");
            //mySerializer.Serialize(myWriter, ota_AirLowFareSearchRQ);
            //myWriter.Close();

            //mySerializer = new XmlSerializer(typeof(OTA_AirLowFareSearchRS));
            ////To write to a file, create a StreamWriter object.
            //myWriter = new System.IO.StreamWriter("D://bfmRS-Integradov6" + DateTime.Now.Hour + DateTime.Now.Minute + ".xml");
            //mySerializer.Serialize(myWriter, ota_AirLowFareSearchRS);
            //myWriter.Close();

            return(ota_AirLowFareSearchRS);
        }