public async Task <Airport> GetAirport(string alias)
        {
            var cacheElement = this[alias];

            if (cacheElement == null)
            {
                //flights api throws a lot of timeout exceptions.
                var airports = await FailSafe.TryTwice(() => _flightsApi.GetAirports(alias));

                if (!airports.Any())
                {
                    return(null);
                }

                if (airports.Count > 1)
                {
                    var airportWithCorrectAlias = airports.FirstOrDefault(a => string.Equals(a.Alias, alias));

                    this[alias] = airportWithCorrectAlias;
                }
                else
                {
                    this[alias] = airports.First();
                }
            }

            return(this[alias]);
        }
示例#2
0
        public async Task <List <Airport> > GetAirportsAsync(string pattern)
        {
            var result = await _flightsApi.GetAirports(pattern);

            return(result);
        }