private async Task <FlightSearchRS> RetrieveAirLowFareSearch(FlightSearchRQ request) { string sRequest = "AirLowFare_" + JsonConvert.SerializeObject(request); FlightSearchRS cacheSearchRS; if (!_cache.TryGetValue(sRequest, out cacheSearchRS)) { // Key not in cache, so get data from Sabre cacheSearchRS = await _AirService.AirLowFareSearchAsync(request); if (cacheSearchRS == null) { cacheSearchRS = new FlightSearchRS { PricedItins = new List <PricedItin>() }; } else { var cacheEntryOptions = new MemoryCacheEntryOptions() // Keep in cache for this time, reset time if accessed. .SetAbsoluteExpiration(TimeSpan.FromHours(1)); // Save data in cache. _cache.Set(sRequest, cacheSearchRS, cacheEntryOptions); } } return(cacheSearchRS); }
public async Task <FlightSearchRS> Post([FromBody] FlightSearchRQ request) { return(await _AirService.AirLowFareSearchAsync(request)); }