static bool GetAirportsRoutes(string Key) { bool resultRoutes = true;; List <AirportItem> Airports = new List <AirportItem>(); try { var context = new TemplateEntities1(); AirportService _airportService = new AirportService(context); // _airportService.DeleteAirportsTripProvider(Providers.BritishAirways); List <AirportItem> AirportsList = getBADestinations(Key); AirportsList = AirportsList.OrderBy(a => a.Code).ToList(); AirportsTrip lastAirportsTrip = _airportService.GetAirportsTripForProviderRoute(Providers.BritishAirways); bool result = false; int AttemptsNumber = 0; int MaxRequestAttempts = FlightsEngine.Models.Constants.Constants.MaxRequestAttempts; bool NeedToContinueSearch = true; foreach (var fromAirport in AirportsList) { foreach (var toAirport in AirportsList) { if (lastAirportsTrip != null) { int test = string.Compare(lastAirportsTrip.Airport.Code, fromAirport.Code); int tets2 = string.Compare(lastAirportsTrip.Airport1.Code, toAirport.Code); } if (!String.IsNullOrWhiteSpace(fromAirport.Code) && !String.IsNullOrWhiteSpace(toAirport.Code) && (lastAirportsTrip == null || (string.Compare(lastAirportsTrip.Airport.Code, fromAirport.Code) <= 0 && string.Compare(lastAirportsTrip.Airport1.Code, toAirport.Code) <= 0))) { result = false; AttemptsNumber = 0; NeedToContinueSearch = true; while (!result && AttemptsNumber <= MaxRequestAttempts && NeedToContinueSearch) { AttemptsNumber++; var client = new HttpClient(); var queryString = HttpUtility.ParseQueryString(string.Empty); var url = "https://api.ba.com/rest-v1/v1/flightOfferBasic;departureCity=" + fromAirport.CityCode + ";arrivalCity=" + toAirport.CityCode + ";cabin=economy;journeyType=roundTrip;range=yearLow"; var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); // httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "GET"; httpWebRequest.Headers.Add("client-key", Key); HttpWebResponse httpResponse = null; try { AttemptsNumber++; httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); result = true; } catch (WebException e) { result = false; if (!e.ToString().Contains("404")) { string webError = FlightsEngine.Utils.Logger.GenerateWebError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "FromAirportId = " + fromAirport.Id + " and toAirportId = " + toAirport.Id); } else { NeedToContinueSearch = false; } } if (result) { NeedToContinueSearch = false; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var requestResult = streamReader.ReadToEnd(); if (!String.IsNullOrWhiteSpace(requestResult)) { _airportService.AddAirportsTripProviderItem(fromAirport.Code, toAirport.Code, Providers.BritishAirways); } } } System.Threading.Thread.Sleep(1000); } } } } } catch (Exception e) { resultRoutes = false; FlightsEngine.Utils.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); } return(resultRoutes); }