public async Task <IEnumerable <BackofficeCourseResponse> > Index([FromQuery] FiltersParam param) { var courses = await _bus.Ask <BackofficeCoursesResponse>( new SearchBackofficeCoursesByCriteriaQuery(param.Filters, param.OrderBy, param.Order, param.Limit, param.Offset) ); return(courses.Courses); }
public FilterDetailsResult FilterDetails([FromUri] FiltersParam param) { if (param == null) { throw new ArgumentNullException("param"); } WebPartner partner = UserToolsProvider.GetPartner(param); if (!(param.StartPoint.HasValue || (param.StartPointAlias == null))) { param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias)); } return(GetCachedFilterDetails(param, partner)); }
public FiltersResult Filters([FromUri] FiltersParam param) { if (param == null) { throw new ArgumentNullException("param"); } WebPartner partner = UserToolsProvider.GetPartner(param); if (!(param.StartPoint.HasValue || (param.StartPointAlias == null))) { param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias)); } object[] args = new object[5]; args[0] = param.Language; args[1] = partner.id; args[2] = param.StartPoint.HasValue ? param.StartPoint.ToString() : "-"; int?destinationState = param.DestinationState; args[3] = destinationState.HasValue ? (destinationState = param.DestinationState).ToString() : "-"; args[4] = param.WithoutPrice; string key = string.Format("cache_filterResult[ln:{0}][p:{1}][sp:{2}][st:{3}][wp:{4}]", args); FiltersResult result = HttpContext.Current.Cache[key] as FiltersResult; if ((result == null) || Settings.IsCacheDisabled) { result = new FiltersResult(); DateTime?startDate = null; TimeSpan?minDuration = null; List <CatalogExcursionMinPrice> catalog = ExcursionProvider.FindExcursions(param.Language, partner.id, startDate, null, null, param.StartPoint, null, null, null, param.DestinationState.HasValue ? new int[] { param.DestinationState.Value } : null, null, minDuration, null, null, param.WithoutPrice); result.categorygroups = ExcursionProvider.BuildFilterCategories(catalog, null); result.destinations = ExcursionProvider.BuildFilterDestinations(catalog, null); result.languages = ExcursionProvider.BuildFilterLanguages(catalog, null); result.durations = ExcursionProvider.BuildFilterDurations(catalog); HttpContext.Current.Cache.Add(key, result, null, DateTime.Now.AddMinutes(10.0), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); } return(result); }