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)); }
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) }); }
public FraserRewardsViewModel Search(FraserRewardsFilterModel criteria) { return(this.ExecuteSearch(criteria, queryable => queryable .OrderByDescending(x => x[Foundation.FrasersContent.Constants.Score_FieldName]) .ThenBy(x => x.Title))); }
public FraserRewardsViewModel GetLatestFraserRewards(FraserRewardsFilterModel criteria) { return(this.ExecuteSearch(criteria, queryable => queryable.OrderByDescending(x => x.PostDate).ThenBy(x => x.Title))); }