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);
        }
 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;
 }