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 void UpdateIndex()
        {
            var challenges = challengesUnitOfWork.GetAll <Challenge>();

            var searchIndices = mapper.Map <List <ViewModels.SearchIndex> >(challenges);

            LuceneSearch.AddUpdateLuceneIndex(searchIndices);
        }
        public List <ChallengesDescriptionViewModel> GetChallenges(SortedPageRule sortedPageRule)
        {
            Contract.Requires <ArgumentException>(sortedPageRule.IsValid);

            var queryParameters = new QueryParameters
            {
                PageRule = sortedPageRule
            };

            PrepareQueryParameters(queryParameters, sortedPageRule.SortingType);

            var challenges = unitOfWork.GetAll <Challenge>(queryParameters);

            return(mapper.Map <List <ChallengesDescriptionViewModel> >(challenges));
        }
Пример #4
0
        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));
        }