Example #1
0
        private Expression <Func <FraserRewardsIndex, bool> > BuildQuery(FraserRewardsFilterModel filter)
        {
            var query = PredicateBuilder.True <FraserRewardsIndex>();

            if (filter.SelectedTypes != null)
            {
                var queryTemplates = PredicateBuilder.False <FraserRewardsIndex>();
                filter.SelectedTypes.ForEach(template =>
                {
                    queryTemplates = queryTemplates.Or(x => x.AllTemplates.Contains(template));
                });
                query = query.And(queryTemplates);
            }

            if (filter.IsFilterOnCurrentSite)
            {
                query = query.And(x => x.Path.Contains(this.sitecoreContext.Site.RootPath));
            }

            query = AddContentPredicates(query, new SearchQuery {
                QueryText = filter.Keyword
            });

            return(query.And(x => x.HasSearchResultFormatter));
        }
Example #2
0
        private FraserRewardsViewModel ExecuteSearch(FraserRewardsFilterModel criteria, Func <IQueryable <FraserRewardsIndex>, IQueryable <FraserRewardsIndex> > orderFunc)
        {
            var query = this.BuildQuery(criteria);
            var pages = (criteria.PageIndex * criteria.PageSize);

            var filter = this.BuildFilter();

            var results = this.globalSearchRepository.Search(query, filter, 0, pages, orderFunc);

            return(new FraserRewardsViewModel
            {
                TotalNumberOfResults = results.TotalNumberOfResults,
                PageIndex = criteria.PageIndex,
                PageSize = criteria.PageSize,
                Results = results.Results,
                Title = criteria.Title,
                NotFoundMessage = criteria.NotFoundMessage,
                IsHiddenIfNotFound = (results.TotalNumberOfResults == 0 && criteria.IsHiddenResultIfNotFound)
            });
        }
Example #3
0
 public FraserRewardsViewModel Search(FraserRewardsFilterModel criteria)
 {
     return(this.ExecuteSearch(criteria, queryable => queryable
                               .OrderByDescending(x => x[Foundation.FrasersContent.Constants.Score_FieldName])
                               .ThenBy(x => x.Title)));
 }
Example #4
0
 public FraserRewardsViewModel GetLatestFraserRewards(FraserRewardsFilterModel criteria)
 {
     return(this.ExecuteSearch(criteria, queryable => queryable.OrderByDescending(x => x.PostDate).ThenBy(x => x.Title)));
 }