public List <ChallengeInfoViewModel> Search(ChallengesSearchOptions searchOptions) { var queryParameters = new ChallengeQueryParameters { PageRule = searchOptions.PageRule, IncludeTags = true }; var filterSettingsBuilder = FilterSettingsBuilder <Challenge> .Create(); if (!searchOptions.Keyword.IsNullOrEmpty()) { try { PopulateFilterSettings(filterSettingsBuilder, searchOptions.Keyword); } catch (NoResultsException) { return(new List <ChallengeInfoViewModel>()); } } queryParameters.FilterSettings = filterSettingsBuilder.GetSettings(); var challenges = unitOfWork.GetAll <Challenge>(queryParameters); return(mapper.Map <List <ChallengeInfoViewModel> >(challenges)); }
public List <ChallengeInfoViewModel> SearchByRule(ChallengesSearchOptions searchOptions) { Contract.NotNull <ArgumentNullException>(searchOptions); Contract.NotNull <ArgumentException>(searchOptions.PageRule); Contract.Assert <InvalidOperationException>(searchOptions.PageRule.IsValid); var searchType = searchOptions.SearchTypes.IsNullOrEmpty() ? DefaultSearchType : searchOptions.SearchTypes.First(); return(searchStrategies[searchType].Value.Search(searchOptions)); }
public List <ChallengeInfoViewModel> Search(ChallengesSearchOptions searchOptions) { var queryParameters = new ChallengeQueryParameters { PageRule = searchOptions.PageRule }; if (!searchOptions.Keyword.IsNullOrEmpty()) { queryParameters.Tags = searchOptions.Keyword.ConvertToList(); } var challenges = unitOfWork.GetAll <Challenge>(queryParameters); return(mapper.Map <List <ChallengeInfoViewModel> >(challenges)); }
public List <ChallengeInfoViewModel> Search([FromBody] ChallengesSearchOptions searchOptions) { return(challengesService.SearchByRule(searchOptions)); }