public CategoryGroupWithCategoriesList CategoriesByGroup([FromUri] CategoryParam param)
 {
     if (param == null)
     {
         throw new ArgumentNullException("param");
     }
     if (!(param.StartPoint.HasValue || (param.StartPointAlias == null)))
     {
         param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
     }
     return(new CategoryGroupWithCategoriesList(ExcursionProvider.GetCategoriesByGroup(param.Language, param.StartPoint)));
 }
        public DestinationsAndCategoryGroupsResult DestinationsAndCategoryGroups([FromUri] DestinationAndCategoryParam 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));
            }
            DestinationsAndCategoryGroupsResult result = new DestinationsAndCategoryGroupsResult();
            FilterDetailsResult cachedFilterDetails    = GetCachedFilterDetails(param, partner);

            result.destinationstates = cachedFilterDetails.destinationstates;
            result.categorygroups    = ExcursionProvider.GetCategoriesByGroup(param.Language, param.StartPoint);
            return(result);
        }