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