private static FilterDetailsResult GetCachedFilterDetails(IStartPointAndLanguageAndPriceOptionParam param, WebPartner partner) { string filtersResultCacheKey = string.Format("cache_filterDetails[ln:{0}][p:{1}][sp:{2}][wp:{3}]", new object[] { param.Language, partner.id, param.StartPoint.HasValue ? param.StartPoint.ToString() : "-", param.WithoutPrice }); FilterDetailsResult result = HttpContext.Current.Cache[filtersResultCacheKey] as FilterDetailsResult; if (result == null || Settings.IsCacheDisabled) { result = new FilterDetailsResult(); System.Collections.Generic.List <CatalogExcursionMinPrice> excursions = ExcursionProvider.FindExcursions(param.Language, partner.id, null, null, null, param.StartPoint, null, null, null, null, null, null, null, null, param.WithoutPrice); result.categorygroups = ExcursionProvider.BuildFilterCategories(excursions, null); // result.departures = ExcursionProvider.BuildFilterDepartures(excursions, null); result.languages = ExcursionProvider.BuildFilterLanguages(excursions, null); result.durations = ExcursionProvider.BuildFilterDurations(excursions); System.Collections.Generic.List <CatalogFilterLocationItem> destinations = ExcursionProvider.BuildFilterDestinations(excursions, null); if (destinations != null) { result.destinations = new System.Collections.Generic.List <CatalogFilterLocationWithStateItem>(); if (destinations.Count > 0) { ExcursionProvider.LoadStatesResult stateResult = ExcursionProvider.LoadStatesForPoints(param.Language, ( from m in destinations select m.id).ToArray <int>()); foreach (CatalogFilterLocationItem item in destinations) { int stateId; if (stateResult.Links.TryGetValue(item.id, out stateId)) { result.destinations.Add(new CatalogFilterLocationWithStateItem(item, stateId.ToString())); } else { result.destinations.Add(new CatalogFilterLocationWithStateItem(item, null)); } } result.destinationstates = stateResult.States; } } HttpContext.Current.Cache.Add(filtersResultCacheKey, result, null, System.DateTime.Now.AddMinutes(10.0), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); } return(result); }
private static FilterDetailsResult GetCachedFilterDetails(IStartPointAndLanguageAndPriceOptionParam param, WebPartner partner) { string filtersResultCacheKey = string.Format("cache_filterDetails[ln:{0}][p:{1}][sp:{2}][wp:{3}]", new object[] { param.Language, partner.id, param.StartPoint.HasValue ? param.StartPoint.ToString() : "-", param.WithoutPrice }); FilterDetailsResult result = HttpContext.Current.Cache[filtersResultCacheKey] as FilterDetailsResult; if (result == null || Settings.IsCacheDisabled) { result = new FilterDetailsResult(); System.Collections.Generic.List<CatalogExcursionMinPrice> excursions = ExcursionProvider.FindExcursions(param.Language, partner.id, null, null, null, param.StartPoint, null, null, null, null, null, null, null, null, param.WithoutPrice); result.categorygroups = ExcursionProvider.BuildFilterCategories(excursions, null); // result.departures = ExcursionProvider.BuildFilterDepartures(excursions, null); result.languages = ExcursionProvider.BuildFilterLanguages(excursions, null); result.durations = ExcursionProvider.BuildFilterDurations(excursions); System.Collections.Generic.List<CatalogFilterLocationItem> destinations = ExcursionProvider.BuildFilterDestinations(excursions, null); if (destinations != null) { result.destinations = new System.Collections.Generic.List<CatalogFilterLocationWithStateItem>(); if (destinations.Count > 0) { ExcursionProvider.LoadStatesResult stateResult = ExcursionProvider.LoadStatesForPoints(param.Language, ( from m in destinations select m.id).ToArray<int>()); foreach (CatalogFilterLocationItem item in destinations) { int stateId; if (stateResult.Links.TryGetValue(item.id, out stateId)) { result.destinations.Add(new CatalogFilterLocationWithStateItem(item, stateId.ToString())); } else { result.destinations.Add(new CatalogFilterLocationWithStateItem(item, null)); } } result.destinationstates = stateResult.States; } } HttpContext.Current.Cache.Add(filtersResultCacheKey, result, null, System.DateTime.Now.AddMinutes(10.0), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); } return result; }