public LowFareSearchRsp LowFareShop(bool solutionResult)
        {
            LowFareSearchReq lowFareSearchReq = new LowFareSearchReq();
            LowFareSearchRsp lowFareSearchRsp;


            lowFareSearchReq = SetUpLFSSearch(lowFareSearchReq, solutionResult);

            AirLowFareSearchPortTypeClient client = new AirLowFareSearchPortTypeClient("AirLowFareSearchPort", WsdlService.AIR_ENDPOINT);

            client.ClientCredentials.UserName.UserName = Helper.RetrunUsername();
            client.ClientCredentials.UserName.Password = Helper.ReturnPassword();
            try
            {
                var httpHeaders = Helper.ReturnHttpHeader();
                client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));

                lowFareSearchRsp = client.service(null, lowFareSearchReq);
                //Console.WriteLine(lowFareSearchRsp.AirSegmentList.Count());

                return(lowFareSearchRsp);
            }
            catch (Exception se)
            {
                Console.WriteLine("Error : " + se.Message);
                client.Abort();
                return(null);
            }
        }
        public LowFareSearchRsp LowFareShop(bool solutionResult)
        {
            LowFareSearchReq lowFareSearchReq = new LowFareSearchReq();
            LowFareSearchRsp lowFareSearchRsp;


            lowFareSearchReq = SetUpLFSSearch(lowFareSearchReq, solutionResult);

            AirLowFareSearchPortTypeClient client = new AirLowFareSearchPortTypeClient("AirLowFareSearchPort", WsdlService.AIR_ENDPOINT);
            client.ClientCredentials.UserName.UserName = Helper.RetrunUsername();
            client.ClientCredentials.UserName.Password = Helper.ReturnPassword();
            try
            {
                var httpHeaders = Helper.ReturnHttpHeader();
                client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));

                lowFareSearchRsp = client.service(lowFareSearchReq);                
                //Console.WriteLine(lowFareSearchRsp.AirSegmentList.Count());

                return lowFareSearchRsp;
            }
            catch (Exception se)
            {
                Console.WriteLine("Error : " + se.Message);
                client.Abort();
                return null;
            }
        }
Example #3
0
        public JsonResult LowFareShop(SearchModel searchModel)
        {
            bool             solutionResult   = true;
            LowFareSearchReq lowFareSearchReq = new LowFareSearchReq();
            LowFareSearchRsp lowFareSearchRsp;

            lowFareSearchReq = SetUpLFSSearch(lowFareSearchReq, solutionResult, searchModel);
            AirLowFareSearchPortTypeClient client = new AirLowFareSearchPortTypeClient("AirLowFareSearchPort", WsdlService.AIR_ENDPOINT);

            client.ClientCredentials.UserName.UserName = Helper.RetrunUsername();
            client.ClientCredentials.UserName.Password = Helper.ReturnPassword();
            try
            {
                var httpHeaders = Helper.ReturnHttpHeader();
                client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));
                lowFareSearchRsp = client.service(null, lowFareSearchReq);
                return(Json(ConverToModelForLFS(lowFareSearchRsp), JsonRequestBehavior.AllowGet));
            }
            catch (Exception se)
            {
                Console.WriteLine("Error : " + se.Message);
                client.Abort();
                return(null);
            }
        }
        private LowFareSearchReq SetUpLFSSearch(LowFareSearchReq lowFareSearchReq, bool solutionResult)
        {
            lowFareSearchReq.TargetBranch   = CommonUtility.GetConfigValue(ProjectConstants.G_TARGET_BRANCH);
            lowFareSearchReq.SolutionResult = solutionResult;  //Change it to true if you want AirPricingSolution, by default it is false
            //and will send AirPricePoint in the result

            //set the GDS via a search modifier
            String[]           gds       = new String[] { "1G" };
            AirSearchModifiers modifiers = AirReq.CreateModifiersWithProviders(gds);

            AirReq.AddPointOfSale(lowFareSearchReq, MY_APP_NAME);

            //try to limit the size of the return... not supported by 1G!
            modifiers.MaxSolutions = string.Format("25");
            lowFareSearchReq.AirSearchModifiers = modifiers;


            //travel is for denver to san fransisco 2 months from now, one week trip
            SearchAirLeg outbound = AirReq.CreateSearchLeg(origin, destination);

            AirReq.AddSearchDepartureDate(outbound, Helper.daysInFuture(60));
            AirReq.AddSearchEconomyPreferred(outbound);

            //coming back

            /*SearchAirLeg ret = AirReq.CreateSearchLeg(destination, origin);
             * AirReq.AddSearchDepartureDate(ret, Helper.daysInFuture(65));
             * //put traveller in econ
             * AirReq.AddSearchEconomyPreferred(ret);*/

            lowFareSearchReq.Items = new SearchAirLeg[1];
            lowFareSearchReq.Items.SetValue(outbound, 0);
            //lowFareSearchReq.Items.SetValue(ret, 1);

            //AirPricingModifiers priceModifiers = AirReq.AddAirPriceModifiers(typeAdjustmentType.Amount, +40);

            //lowFareSearchReq.AirPricingModifiers = priceModifiers;

            lowFareSearchReq.SearchPassenger = AirReq.AddSearchPassenger();

            return(lowFareSearchReq);
        }
        private LowFareSearchReq SetUpLFSSearch(LowFareSearchReq lowFareSearchReq, bool solutionResult)
        {
            lowFareSearchReq.TargetBranch = CommonUtility.GetConfigValue(ProjectConstants.G_TARGET_BRANCH);
            lowFareSearchReq.SolutionResult = solutionResult;  //Change it to true if you want AirPricingSolution, by default it is false
                                                      //and will send AirPricePoint in the result

            //set the GDS via a search modifier
            String[] gds = new String[] { "1G" };
            AirSearchModifiers modifiers = AirReq.CreateModifiersWithProviders(gds);

            AirReq.AddPointOfSale(lowFareSearchReq, MY_APP_NAME);

            //try to limit the size of the return... not supported by 1G!
            modifiers.MaxSolutions = string.Format("25");
            lowFareSearchReq.AirSearchModifiers = modifiers;


            //travel is for denver to san fransisco 2 months from now, one week trip
            SearchAirLeg outbound = AirReq.CreateSearchLeg(origin, destination);
            AirReq.AddSearchDepartureDate(outbound, Helper.daysInFuture(4));
            AirReq.AddSearchEconomyPreferred(outbound);

            //coming back
            SearchAirLeg ret = AirReq.CreateSearchLeg(destination, origin);
            AirReq.AddSearchDepartureDate(ret, Helper.daysInFuture(9));
            //put traveller in econ
            AirReq.AddSearchEconomyPreferred(ret);

            lowFareSearchReq.Items = new SearchAirLeg[2];
            lowFareSearchReq.Items.SetValue(outbound, 0);
            lowFareSearchReq.Items.SetValue(ret, 1);

            AirPricingModifiers priceModifiers = AirReq.AddAirPriceModifiers(typeAdjustmentType.Amount, +40);

            lowFareSearchReq.AirPricingModifiers = priceModifiers;

            lowFareSearchReq.SearchPassenger = AirReq.AddSearchPassenger();

            return lowFareSearchReq;
        }
Example #6
0
        private LowFareSearchReq ConvertToLowFareSearchReq(FlightSearchRQ request, JourneyType journeyType)
        {
            if (request.Segments.Count == 0)
            {
                throw new  ApplicationException("Segment is required");
            }
            //Segments
            IEnumerable <SearchAirLeg> SearchAirLegs = new List <SearchAirLeg>();

            switch (journeyType)
            {
            case JourneyType.DepartAndReturn:
                if (request.Segments.Count == 1)
                {
                    throw new ApplicationException("2 segment is request to generate Depart and Return journey");
                }
                SearchAirLegs = request.Segments.OrderBy(s => s.Departure).Select(s =>
                                                                                  GenerateSearchAirLeg(s.Origin, true, s.Destination, true, s.Departure));
                break;

            case JourneyType.DepartOnly:
                SearchAirLegs = request.Segments.OrderBy(s => s.Departure).Take(1).Select(s =>
                                                                                          GenerateSearchAirLeg(s.Origin, true, s.Destination, true, s.Departure));
                break;

            case JourneyType.ReturnOnly:
                if (request.Segments.Count == 1)
                {
                    throw new ApplicationException("2 segment is request to generate Return Only journey");
                }

                SearchAirLegs = request.Segments.OrderBy(s => s.Departure).Skip(1).Take(1).Select(s =>
                                                                                                  GenerateSearchAirLeg(s.Origin, true, s.Destination, true, s.Departure));
                break;
            }


            AirSearchModifiers airSearchModifiers = new AirSearchModifiers
            {
                PreferredProviders = new Provider[] { new Provider {
                                                          Code = "1G"
                                                      } }
            };

            AirPricingModifiers airPricingModifiers = new AirPricingModifiers
            {
                ETicketabilitySpecified = true,
                ETicketability          = typeEticketability.Required,
                FaresIndicatorSpecified = true,
                FaresIndicator          = typeFaresIndicator.AllFares,
            };

            //Passengers
            var SearchPassengers = new List <SearchPassenger>();

            request.Ptcs.ForEach(p =>
            {
                for (int i = 1; i <= p.Quantity; i++)
                {
                    SearchPassengers.Add(new SearchPassenger
                    {
                        Code = p.Code == "CNN" ? "CHD" : p.Code,
                        Age  = p.Code == "CNN" ? "8" : null,
                    });
                }
            });

            LowFareSearchReq req = new LowFareSearchReq
            {
                BillingPointOfSaleInfo = new kestrel.AirService.BillingPointOfSaleInfo
                {
                    OriginApplication = "uAPI"
                },
                TargetBranch = "P7073862",
                MaxNumberOfExpertSolutions = "50",
                SolutionResult             = false,
                Items = SearchAirLegs.ToArray(),
                AirSearchModifiers  = airSearchModifiers,
                AirPricingModifiers = airPricingModifiers,
                SearchPassenger     = SearchPassengers.ToArray(),
                ReturnUpsellFare    = true
            };

            return(req);
        }