public SearchExcursionResult Search([FromUri] SearchParam param)
        {
            if (param == null)
            {
                throw new ArgumentNullException("param");
            }
            if (string.IsNullOrEmpty(param.SearchText))
            {
                throw new ArgumentNullExceptionWithCode(0x65, "s");
            }
            if (!(param.StartPoint.HasValue || (param.StartPointAlias == null)))
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            int limit = (param.SearchLimit.HasValue && (param.SearchLimit.Value > 0)) ? param.SearchLimit.Value : Settings.ExcursionGeographySearchLimit;

            return(ExcursionProvider.SearchExcursionObjects(param.Language, param.StartPoint, param.SearchText, limit));
        }