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]); }
public async Task <List <Airport> > GetAirportsAsync(string pattern) { var result = await _flightsApi.GetAirports(pattern); return(result); }