示例#1
0
        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);
        }
示例#2
0
 public async Task <FlightSearchRS> Post([FromBody] FlightSearchRQ request)
 {
     return(await _AirService.AirLowFareSearchAsync(request));
 }