private UniversalService.RailPricingInfo[] AddRailPricingInfo(RailPricingInfo[] railPricingInfo, List <RailFare> railFareList, List <RailBookingInfo> bookingInfoList)
        {
            if (railPricingInfo != null)
            {
                List <UniversalService.RailPricingInfo> railPricingList = new List <UniversalService.RailPricingInfo>();

                IEnumerator <RailPricingInfo> priceList = railPricingInfo.ToList().GetEnumerator();


                while (priceList.MoveNext())
                {
                    RailPricingInfo priceInfo = priceList.Current;

                    IEnumerator <RailBookingInfo> bookingInfos = priceInfo.RailBookingInfo.ToList().GetEnumerator();

                    List <UniversalService.RailBookingInfo> railBookingInfos = new List <UniversalService.RailBookingInfo>();

                    while (bookingInfos.MoveNext())
                    {
                        RailBookingInfo info = bookingInfos.Current;
                        railBookingInfos.Add(new UniversalService.RailBookingInfo()
                        {
                            RailFareRef    = info.RailFareRef,
                            RailJourneyRef = info.RailJourneyRef
                        });
                    }

                    railPricingList.Add(new UniversalService.RailPricingInfo()
                    {
                        Key                   = priceInfo.Key,
                        TotalPrice            = priceInfo.TotalPrice,
                        ApproximateTotalPrice = priceInfo.ApproximateTotalPrice,
                        Items                 = railFareList.ToArray(),
                        RailBookingInfo       = railBookingInfos.ToArray()
                    });
                }


                return(railPricingList.ToArray());
            }

            return(null);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //
            // PING REQUEST
            //
            String payload     = "this my payload; there are many like it but this one is mine";
            String someTraceId = "doesntmatter-8176";
            String originApp   = "UAPI";

            //set up the request parameters into a PingReq object
            PingReq req = new PingReq();

            req.Payload = payload;
            req.TraceId = someTraceId;

            UAPIConsumptionSamples.SystemService.BillingPointOfSaleInfo billSetInfo = new UAPIConsumptionSamples.SystemService.BillingPointOfSaleInfo();
            billSetInfo.OriginApplication = originApp;

            req.BillingPointOfSaleInfo = billSetInfo;
            req.TargetBranch           = CommonUtility.GetConfigValue(ProjectConstants.G_TARGET_BRANCH);
            Console.WriteLine(req);



            try
            {
                //run the ping request
                //WSDLService.sysPing.showXML(true);
                SystemPingPortTypeClient client = new SystemPingPortTypeClient("SystemPingPort", WsdlService.SYSTEM_ENDPOINT);
                //Console.WriteLine(client.Endpoint);
                client.ClientCredentials.UserName.UserName = Helper.RetrunUsername();
                client.ClientCredentials.UserName.Password = Helper.ReturnPassword();

                /*var httpHeaders = new Dictionary<string, string>();
                 * httpHeaders.Add("Username", "travelportsuperadmin");
                 * httpHeaders.Add("Password", "abc123");
                 * client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));*/

                /*HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
                 * httpRequestProperty.Headers[HttpRequestHeader.Authorization] = "Basic " +
                 *  Convert.ToBase64String(Encoding.ASCII.GetBytes(client.ClientCredentials.UserName.UserName +
                 *  ":" + client.ClientCredentials.UserName.Password));
                 *
                 * using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
                 *  {
                 *      OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] =
                 *          httpRequestProperty;
                 *      return client.processRequest(castRequest) as TSRsp;
                 *  }
                 *
                 *
                 * OperationContext.Current.OutgoingMessageProperties*/



                var httpHeaders = Helper.ReturnHttpHeader();
                client.Endpoint.EndpointBehaviors.Add(new HttpHeadersEndpointBehavior(httpHeaders));
                //String soapMsg = Helper.ObjectToSOAP(req);
                PingRsp rsp = client.service(req);
                //print results.. payload and trace ID are echoed back in response
                Console.WriteLine(rsp.Payload);
                //Console.WriteLine(rsp.TraceId);
                //Console.WriteLine(rsp.TransactionId);
            }
            catch (Exception e)
            {
                //usually only the error message is useful, not the full stack
                //trace, since the stack trace in is your address space...
                Console.WriteLine("Error : " + e.Message);
            }

            VehicleSvcTest vehicleTest = new VehicleSvcTest();

            vehicleTest.ProcessVehicleFlow();

            RailSvcTest railtest = new RailSvcTest();
            RailAvailabilitySearchRsp railSearchRsp = railtest.ProcessRailFlow();

            if (railSearchRsp != null)
            {
                RailPricingSolution lowestPrice = new RailPricingSolution()
                {
                    TotalPrice = "0"
                };

                List <RailJourney> journey = new List <RailJourney>();

                List <RailSegment> selectedSegmentList = new List <RailSegment>();

                List <RailFare> railFareList = new List <RailFare>();

                List <RailBookingInfo> bookingInfoList = new List <RailBookingInfo>();

                if (railSearchRsp.RailPricingSolution != null && railSearchRsp.RailPricingSolution.Count <RailPricingSolution>() > 0)
                {
                    IEnumerator <RailPricingSolution> railPricingSoltionList = railSearchRsp.RailPricingSolution.ToList().GetEnumerator();
                    while (railPricingSoltionList.MoveNext())
                    {
                        RailPricingSolution railPriceSol = railPricingSoltionList.Current;

                        if (Helper.ReturnValue(lowestPrice.TotalPrice) == 0)
                        {
                            lowestPrice = railPriceSol;
                        }
                        else if (Helper.ReturnValue(railPriceSol.TotalPrice) < Helper.ReturnValue(lowestPrice.TotalPrice))
                        {
                            lowestPrice = railPriceSol;
                        }
                    }


                    if (Helper.ReturnValue(lowestPrice.TotalPrice) > 0)
                    {
                        IEnumerator <RailJourney> journeyList = railSearchRsp.RailJourneyList.ToList().GetEnumerator();
                        IEnumerator journeyRefList            = lowestPrice.Items.GetEnumerator();

                        while (journeyRefList.MoveNext())
                        {
                            RailJourneyRef j = (RailJourneyRef)journeyRefList.Current;

                            while (journeyList.MoveNext())
                            {
                                RailJourney currJourney = journeyList.Current;
                                if (j.Key.CompareTo(currJourney.Key) == 0)
                                {
                                    journey.Add(currJourney);
                                }
                            }
                        }
                    }

                    IEnumerator <RailJourney> railJourneyList = journey.GetEnumerator();
                    IEnumerator <RailSegment> railSegmentList = railSearchRsp.RailSegmentList.ToList().GetEnumerator();

                    while (railJourneyList.MoveNext())
                    {
                        RailJourney railJourney = railJourneyList.Current;

                        IEnumerator segmentRefList = railJourney.Items.GetEnumerator();
                        while (segmentRefList.MoveNext())
                        {
                            RailSegmentRef segRef = (RailSegmentRef)segmentRefList.Current;

                            while (railSegmentList.MoveNext())
                            {
                                RailSegment segment = railSegmentList.Current;
                                if (segRef.Key.CompareTo(segment.Key) == 0)
                                {
                                    selectedSegmentList.Add(segment);
                                }
                            }
                        }
                    }

                    IEnumerator <RailPricingInfo> railPriceInfoList = lowestPrice.RailPricingInfo.ToList().GetEnumerator();
                    IEnumerator <RailFare>        railFares         = railSearchRsp.RailFareList.ToList().GetEnumerator();

                    while (railPriceInfoList.MoveNext())
                    {
                        RailPricingInfo priceInfo = railPriceInfoList.Current;

                        IEnumerator fareList = priceInfo.Items.ToList().GetEnumerator();

                        while (fareList.MoveNext())
                        {
                            RailFareRef fareRef = (RailFareRef)fareList.Current;

                            while (railFares.MoveNext())
                            {
                                RailFare fare = railFares.Current;

                                if (fareRef.Key.CompareTo(fare.Key) == 0)
                                {
                                    railFareList.Add(fare);
                                }
                            }
                        }

                        IEnumerator <RailBookingInfo> infoList = priceInfo.RailBookingInfo.ToList().GetEnumerator();
                        while (infoList.MoveNext())
                        {
                            RailBookingInfo bookingInfo = infoList.Current;
                            bookingInfoList.Add(bookingInfo);
                        }
                    }
                }

                railtest.ProcessRailBookFlow(lowestPrice, journey, selectedSegmentList, railFareList, bookingInfoList);
            }
        }