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); }
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))); }
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); }