Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }