private SearchResponse SearchByText(SearchQuery searchQuery, bool?onlyBrands = null) { var websiteId = _requestModelAccessor.RequestModel.WebsiteModel.SystemId; var channelId = _requestModelAccessor.RequestModel.ChannelModel.SystemId; var searchQueryBuilder = _searchQueryBuilderFactory.Create(CultureInfo.CurrentUICulture, CmsSearchDomains.Pages, searchQuery); searchQueryBuilder.ApplyFreeTextSearchTags(); searchQueryBuilder.ApplyDefaultSortOrder(); var request = searchQueryBuilder.Build(pageSize: searchQuery.PageSize.GetValueOrDefault(100000), pageNumber: searchQuery.PageNumber); request.FilterTags.Add(new Tag(TagNames.Status, (int)ContentStatus.Published)); request.FilterTags.Add(new Tag(TagNames.IsInTrashcan, false)); request.FilterTags.Add(new Tag(TagNames.WebSiteId, websiteId)); request.FilterTags.Add(new Tag(TagNames.IsSearchable, true)); request.FilterTags.Add(new RangeTag(TagNames.GetTagNameForChannel(channelId, TagNames.ActiveChannelStartDate), DateTimeOffset.MinValue.DateTime, DateTimeOffset.UtcNow.DateTime)); request.FilterTags.Add(new RangeTag(TagNames.GetTagNameForChannel(channelId, TagNames.ActiveChannelEndDate), DateTimeOffset.UtcNow.DateTime, DateTimeOffset.MaxValue.DateTime)); if (onlyBrands != null) { const string brandPageType = PageTemplateNameConstants.Brand; if (onlyBrands == true) { request.FilterTags.Add(new Tag(TagNames.TemplateId, brandPageType)); } else { request.ExcludeTags.Add(new Tag(TagNames.TemplateId, brandPageType)); } } return(_searchService.Search(request)); }
private SearchResponse SearchByPageType(SearchQuery searchQuery) { if (searchQuery.PageType == PageTemplateNameConstants.NewsList && searchQuery.PageSystemId.HasValue) { var channelId = _requestModelAccessor.RequestModel.ChannelModel.SystemId; var searchQueryBuilder = _searchQueryBuilderFactory.Create(CultureInfo.CurrentUICulture, CmsSearchDomains.Pages, searchQuery); var request = searchQueryBuilder.Build(pageSize: searchQuery.PageSize.GetValueOrDefault(100000), pageNumber: searchQuery.PageNumber); request.FilterTags.Add(new Tag(TagNames.ActiveChannelSystemId, channelId)); request.FilterTags.Add(new Tag(TagNames.PageParentTreeId, searchQuery.PageSystemId.Value)); request.FilterTags.Add(new Tag(TagNames.TemplateId, PageTemplateNameConstants.News)); request.FilterTags.Add(new RangeTag(TagNames.GetTagNameForChannel(channelId, TagNames.ActiveChannelStartDate), DateTimeOffset.MinValue.DateTime, DateTimeOffset.UtcNow.DateTime)); request.FilterTags.Add(new RangeTag(TagNames.GetTagNameForChannel(channelId, TagNames.ActiveChannelEndDate), DateTimeOffset.UtcNow.DateTime, DateTimeOffset.MaxValue.DateTime)); request.Sortings.Add(new Sorting(TagNames.GetTagNameForProperty(PageFieldNameConstants.NewsDate), SortDirection.Descending, SortingFieldType.Date)); return(_searchService.Search(request)); } return(null); }