public static Airport_Info GetAirport_Info(string code, JObject dictionary) { Airport_Info airport_Info = new Airport_Info(); string cityCode = dictionary["locations"][code]["cityCode"].ToString(); string countryCode = dictionary["locations"][code]["countryCode"].ToString();; var foundCity = city_list.SingleOrDefault(item => item.codeIataCity == cityCode); var foundCountry = country_list.SingleOrDefault(item => item.codeIso2Country == countryCode); airport_Info.airport = code; airport_Info.city = foundCity.nameCity; airport_Info.country = foundCountry.nameCountry; return(airport_Info); }
public async Task <IActionResult> Search(string flight_type, string departure, string arrival, string from, string to, int adults, int children, int infants, string travelClass, bool noneStop ) { //Set Access Token Header if (!tokenGet) { var access_token = await GetAccessToken(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token); tokenGet = true; } if (departure == null) { return(View(currentSearchResult)); } //Get Flight Search Result var json = await GetFlightSearchResult(flight_type, departure, arrival, from, to, adults, children, infants, travelClass, noneStop); List <FlightSearch> searchResult = new List <FlightSearch>(); if (json["errors"] == null) { //Get All Data JArray data = (JArray)json["data"]; int length = data.Count; flightData = data; //Get Dictionary JObject dictionary = (JObject)json["dictionaries"]; for (int i = 0; i < length; i++) { FlightSearch searchItem = new FlightSearch(); JObject dataItem = (JObject)data[i]; searchItem.Id = Convert.ToInt32(dataItem["id"].ToString()); searchItem.TotalPrice = new Price { Value = dataItem["price"]["grandTotal"].ToString(), Currency = dataItem["price"]["currency"].ToString(), }; searchItem.TravelerPrices = new List <TravelerPrice>(); JArray travelerPricing = (JArray)dataItem["travelerPricings"]; for (int j = 0; j < travelerPricing.Count; j++) { JObject travelerItem = (JObject)travelerPricing[j]; searchItem.TravelerPrices.Add( new TravelerPrice { Type = travelerItem["travelerType"].ToString(), Value = travelerItem["price"]["total"].ToString(), Currency = travelerItem["price"]["currency"].ToString() } ); } searchItem.Itineraries = new List <Itinerary>(); JArray itin_arr = (JArray)dataItem["itineraries"]; for (int j = 0; j < itin_arr.Count; j++) { JObject itin = (JObject)itin_arr[j]; JArray segment_arr = (JArray)itin["segments"]; for (int k = 0; k < segment_arr.Count; k++) { JObject segment = (JObject)segment_arr[k]; Itinerary itinItem = new Itinerary(); //Departure Itinerary data Airport_Info departure_airport_info = GetAirport_Info(segment["departure"]["iataCode"].ToString(), dictionary); itinItem.departure_airport = departure_airport_info.airport; itinItem.departure_city = departure_airport_info.city; itinItem.departure_country = departure_airport_info.country; itinItem.departure_date = segment["departure"]["at"].ToString(); //Arrival Itinerary data Airport_Info arrival_airport_info = GetAirport_Info(segment["arrival"]["iataCode"].ToString(), dictionary); itinItem.arrival_airport = arrival_airport_info.airport; itinItem.arrival_city = arrival_airport_info.city; itinItem.arrival_country = arrival_airport_info.country; itinItem.arrival_date = segment["arrival"]["at"].ToString(); //Get Aircraft string aircraft_code = segment["aircraft"]["code"].ToString(); itinItem.aircraft = dictionary["aircraft"][aircraft_code].ToString(); //Get Airline string airline_code = segment["carrierCode"].ToString(); itinItem.airline = dictionary["carriers"][airline_code].ToString(); searchItem.Itineraries.Add(itinItem); } } searchResult.Add(searchItem); } //contentString = json.ToString(); currentSearchResult = searchResult; } return(View(searchResult)); }