public AirportItem GetLastAirportForProviderRoute(int ProviderId)
        {
            AirportItem result = null;

            try
            {
                var airportsTrips = _airportsTripRepo.FindAllBy(a => a.Providers.Where(p => p.Id == ProviderId).Any()).ToList();
                if (airportsTrips != null && airportsTrips.Count > 0)
                {
                    var airportTrip = airportsTrips.OrderBy(a => a.Id).OrderBy(t => t.Airport.Code).FirstOrDefault();
                    if (airportTrip != null)
                    {
                        result = new AirportItem(airportTrip.Airport.Code, airportTrip.Airport.Id, airportTrip.Airport.CityId, airportTrip.Airport.City.CountryId, airportTrip.Airport.City.Country.ContinentId, airportTrip.Airport.City.Code);
                    }
                }
            }
            catch (Exception e)
            {
                FlightsEngine.Utils.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "ProviderId = " + ProviderId);
            }
            return(result);
        }
        public static List <AirportItem> getBADestinations(string Key)
        {
            List <AirportItem> Airports = new List <AirportItem>();

            try
            {
                var url            = "https://api.ba.com/rest-v1/v1/balocations";
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                // httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method = "GET";
                httpWebRequest.Headers.Add("client-key", Key);
                bool   result   = false;
                string CityCode = "";

                HttpWebResponse httpResponse = null;
                try
                {
                    httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                    result       = true;
                }
                catch (WebException e)
                {
                    result = false;
                    string webError = FlightsEngine.Utils.Logger.GenerateWebError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                }

                if (result)
                {
                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        var requestResult = streamReader.ReadToEnd();

                        if (!String.IsNullOrWhiteSpace(requestResult))
                        {
                            BARouteResponse ResultItem = JsonConvert.DeserializeObject <BARouteResponse>(requestResult);
                            if (ResultItem != null)
                            {
                                foreach (var Country in ResultItem.GetBA_LocationsResponse.Country)
                                {
                                    try
                                    {
                                        if (Country.City != null)
                                        {
                                            JavaScriptSerializer srRequestResult = new JavaScriptSerializer();
                                            dynamic jsonCities = srRequestResult.DeserializeObject(Country.City.ToString());
                                            if (jsonCities != null)
                                            {
                                                if (FlightsEngine.Utils.Utils.IsObjectsArray(jsonCities))
                                                {
                                                    foreach (var jsonCity in jsonCities)
                                                    {
                                                        CityCode = jsonCity["CityCode"];
                                                        if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonCity, "Airport"))
                                                        {
                                                            dynamic jsonAirports = jsonCity["Airport"];
                                                            if (FlightsEngine.Utils.Utils.IsObjectsArray(jsonAirports))
                                                            {
                                                                foreach (var jsonAirport in jsonAirports)
                                                                {
                                                                    if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonAirport, "AirportCode"))
                                                                    {
                                                                        AirportItem Airport = new AirportItem();
                                                                        Airport.Code     = Convert.ToString(jsonAirport["AirportCode"]);
                                                                        Airport.CityCode = CityCode;
                                                                        Airports.Add(Airport);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonAirports, "AirportCode"))
                                                                {
                                                                    AirportItem Airport = new AirportItem();
                                                                    Airport.Code     = Convert.ToString(jsonAirports["AirportCode"]);
                                                                    Airport.CityCode = CityCode;
                                                                    Airports.Add(Airport);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                else if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonCities, "Airport"))
                                                {
                                                    CityCode = jsonCities["CityCode"];
                                                    dynamic jsonAirports = jsonCities["Airport"];
                                                    if (FlightsEngine.Utils.Utils.IsObjectsArray(jsonAirports))
                                                    {
                                                        foreach (var jsonAirport in jsonAirports)
                                                        {
                                                            if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonAirport, "AirportCode"))
                                                            {
                                                                AirportItem Airport = new AirportItem();
                                                                Airport.Code     = Convert.ToString(jsonAirport["AirportCode"]);
                                                                Airport.CityCode = CityCode;
                                                                Airports.Add(Airport);
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if (FlightsEngine.Utils.Utils.IsPropertyExist(jsonAirports, "AirportCode"))
                                                        {
                                                            AirportItem Airport = new AirportItem();
                                                            Airport.Code     = Convert.ToString(jsonAirports["AirportCode"]);
                                                            Airport.CityCode = CityCode;
                                                            Airports.Add(Airport);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        FlightsEngine.Utils.Logger.GenerateError(ex, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "Country = " + JsonConvert.SerializeObject(Country));
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                FlightsEngine.Utils.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            }

            return(Airports);
        }