예제 #1
0
        public AirAvailabilityResponseMain ConverToModelForLFS(LowFareSearchRsp rsp)
        {
            AirAvailabilityResponseMain respMain = new AirAvailabilityResponseMain();

            respMain.AirAvailabilityResponse = new System.Collections.Generic.List <AirAvailabilityResponse>();
            AirAvailabilityResponse response = new AirAvailabilityResponse();

            response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
            AirAvailabilityResult result = new AirAvailabilityResult();

            System.Collections.Generic.List <AirAvailabilityResponse> liAirAvailabilityResponse = new System.Collections.Generic.List <AirAvailabilityResponse>();
            System.Collections.Generic.List <AirAvailabilityResult>   liAirAvailabilityResult   = new System.Collections.Generic.List <AirAvailabilityResult>();
            if (rsp != null)
            {
                for (var i = 0; i < rsp.Items.Length; i++)
                {
                    response = new AirAvailabilityResponse();
                    response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                    liAirAvailabilityResult        = new System.Collections.Generic.List <AirAvailabilityResult>();
                    liAirAvailabilityResponse      = new System.Collections.Generic.List <AirAvailabilityResponse>();


                    for (var j = 0; j < ((AirPricingSolution)rsp.Items[i]).Journey[0].AirSegmentRef.Length; j++)
                    {
                        var data = (from a in rsp.AirSegmentList
                                    where a.Key == ((AirPricingSolution)rsp.Items[i]).Journey[0].AirSegmentRef[j].Key
                                    select new
                        {
                            a.Destination,
                            a.ArrivalTime,
                            a.Origin,
                            a.DepartureTime,
                            a.ProviderCode,
                            ((AirPricingSolution)rsp.Items[i]).TotalPrice,
                            ((AirPricingSolution)rsp.Items[i]).Taxes,
                            a.Carrier
                        }).FirstOrDefault();
                        liAirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                        liAirAvailabilityResult.Add(new AirAvailabilityResult()
                        {
                            From          = data.Origin,
                            DepartureTime = Convert.ToDateTime(data.DepartureTime).ToString("dd-MMM-yyyy hh:mm tt"),
                            To            = data.Destination,
                            ArrivalTime   = Convert.ToDateTime(data.ArrivalTime).ToString("dd-MMM-yyyy hh:mm tt"),
                            Carrier       = data.Carrier
                        });

                        response.AirAvailabilityResult.AddRange(liAirAvailabilityResult);
                        response.Amount    = ((AirPricingSolution)rsp.Items[i]).TotalPrice;
                        response.TaxAmount = ((AirPricingSolution)rsp.Items[i]).Taxes;
                    }
                    respMain.AirAvailabilityResponse.Add(response);
                }
            }
            return(respMain);
        }
예제 #2
0
        public JsonResult Availability(SearchModel searchModel)
        {
            origin      = searchModel.Origin;
            destination = searchModel.Destination;

            AvailabilitySearchReq request = new AvailabilitySearchReq();
            AvailabilitySearchRsp rsp;

            request = SetupRequestForSearch(request, searchModel);

            AirAvailabilitySearchPortTypeClient client = new AirAvailabilitySearchPortTypeClient("AirAvailabilitySearchPort", 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));

                rsp = client.service(null, request);
                AirAvailabilityResponseMain response = ConverToModel(rsp);
                //Console.WriteLine(rsp.AirItinerarySolution.Count());
                //Console.WriteLine(rsp.AirSegmentList.Count());

                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            catch (Exception se)
            {
                //Console.WriteLine("Error : " + se.Message);
                client.Abort();
                throw se;
            }

            //these checks are just sanity that we can make an availability request
            //assertThat(rsp.getAirItinerarySolution().size(), is(not(0)));
            //assertThat(rsp.getAirSegmentList().getAirSegment().size(), is(not(0)));
        }
예제 #3
0
        public AirAvailabilityResponseMain ConverToModel(AvailabilitySearchRsp rsp)
        {
            var bLoop         = false;
            var iSegmentCount = 0;
            AirAvailabilityResponseMain respMain = new AirAvailabilityResponseMain();

            respMain.AirAvailabilityResponse = new System.Collections.Generic.List <AirAvailabilityResponse>();
            AirAvailabilityResponse response = new AirAvailabilityResponse();

            response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
            AirAvailabilityResult result = new AirAvailabilityResult();

            System.Collections.Generic.List <AirAvailabilityResponse> liAirAvailabilityResponse = new System.Collections.Generic.List <AirAvailabilityResponse>();
            System.Collections.Generic.List <AirAvailabilityResult>   liAirAvailabilityResult   = new System.Collections.Generic.List <AirAvailabilityResult>();
            if (rsp != null)
            {
                var j = 0;
                for (var i = 0; i < rsp.AirItinerarySolution[0].Connection.Length; i++)
                {
                    if (i == 0)
                    {
                        while (j < rsp.AirItinerarySolution[0].Connection[i].SegmentIndex)
                        {
                            liAirAvailabilityResult   = new System.Collections.Generic.List <AirAvailabilityResult>();
                            liAirAvailabilityResponse = new System.Collections.Generic.List <AirAvailabilityResponse>();
                            response = new AirAvailabilityResponse();
                            response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                            liAirAvailabilityResult.Add(new AirAvailabilityResult()
                            {
                                From = rsp.FlightDetailsList[j].Origin,
                                To   = rsp.FlightDetailsList[j].Destination
                            });
                            response.AirAvailabilityResult.AddRange(liAirAvailabilityResult);
                            respMain.AirAvailabilityResponse.Add(response);
                            j++;
                        }
                        j = rsp.AirItinerarySolution[0].Connection[i].SegmentIndex;
                    }
                    else if (i < rsp.AirItinerarySolution[0].Connection.Length - 1)
                    {
                        response = new AirAvailabilityResponse();
                        response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                        liAirAvailabilityResult        = new System.Collections.Generic.List <AirAvailabilityResult>();
                        liAirAvailabilityResponse      = new System.Collections.Generic.List <AirAvailabilityResponse>();
                        while (j < rsp.AirItinerarySolution[0].Connection[i].SegmentIndex)
                        {
                            liAirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                            liAirAvailabilityResult.Add(new AirAvailabilityResult()
                            {
                                From = rsp.FlightDetailsList[j].Origin,
                                To   = rsp.FlightDetailsList[j].Destination
                            });
                            response.AirAvailabilityResult.AddRange(liAirAvailabilityResult);
                            iSegmentCount = rsp.AirItinerarySolution[0].Connection[i].SegmentIndex;
                            j++;
                        }
                        respMain.AirAvailabilityResponse.Add(response);
                        j = rsp.AirItinerarySolution[0].Connection[i].SegmentIndex;
                    }
                    else if (rsp.AirItinerarySolution[0].Connection.Length - 1 == i)
                    {
                        response = new AirAvailabilityResponse();
                        response.AirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                        liAirAvailabilityResult        = new System.Collections.Generic.List <AirAvailabilityResult>();
                        liAirAvailabilityResponse      = new System.Collections.Generic.List <AirAvailabilityResponse>();
                        j = rsp.AirItinerarySolution[0].Connection[i].SegmentIndex;
                        while (j < rsp.AirSegmentList.Length)
                        {
                            liAirAvailabilityResult = new System.Collections.Generic.List <AirAvailabilityResult>();
                            liAirAvailabilityResult.Add(new AirAvailabilityResult()
                            {
                                From = rsp.FlightDetailsList[j].Origin,
                                To   = rsp.FlightDetailsList[j].Destination
                            });
                            response.AirAvailabilityResult.AddRange(liAirAvailabilityResult);
                            iSegmentCount = rsp.AirItinerarySolution[0].Connection[i].SegmentIndex;
                            j++;
                        }
                        respMain.AirAvailabilityResponse.Add(response);
                    }
                }
            }
            return(respMain);
        }