예제 #1
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            var facet = searchResults
                        .TermsFacetFor <EntryContentBase>(x => x.LanguageName()).Terms;

            var filterOptionModels = new List <FilterOptionModel>();

            filterOptionModels.Add(new FilterOptionModel("languageCurrent", "Current", "current", true, facet.Sum(x => x.Count)));
            filterOptionModels.AddRange(facet.Select(authorCount => new FilterOptionModel("language" + authorCount.Term, String.Format(CultureInfo.InvariantCulture, "{0} ({1})", authorCount.Term, authorCount.Count), authorCount.Term, false, authorCount.Count)));

            return(filterOptionModels);
        }
예제 #2
0
 public abstract IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode);
예제 #3
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            var facet = searchResults
                        .TermsFacetFor(PropertyValuesExpressionObject).Terms;

            return(facet.Select(authorCount => new FilterOptionModel(Name + authorCount.Term, String.Format(CultureInfo.InvariantCulture, "{0} ({1})", authorCount.Term, authorCount.Count), authorCount.Term, false, authorCount.Count)));
        }
예제 #4
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            yield return(new FilterOptionModel("all", "All", false, false, -1));

            yield return(new FilterOptionModel("active", "Active", false, false, -1));
            //yield return new FilterOptionModel("unactive", "Unactive", false, false, -1);
        }
예제 #5
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            var facet = searchResults
                        .TermsFacetFor <CatalogContentBase>(x => x.Categories()).Terms;

            return(facet.Select(authorCount => new FilterOptionModel("category" + authorCount.Term, String.Format(CultureInfo.InvariantCulture, "{0} ({1})", authorCount.Term, authorCount.Count), authorCount.Term, false, authorCount.Count)));
        }
예제 #6
0
        private IEnumerable <FilterContentWithOptions> GetFilterResult(Dictionary <FilterContentModelType, ISearch> subQueries, ListingMode listingMode)
        {
            var filters = new List <FilterContentWithOptions>();

            var multSearch = SearchClient.Instance.MultiSearch <IFacetContent>();
            var filterListInResultOrder = new Dictionary <IFilterContent, FacetFilterSetting>();

            foreach (var subQuery in subQueries.OrderBy(x => x.Key.Filter.Name))
            {
                var typeSearch = subQuery.Value as ITypeSearch <object>;
                AddToMultiSearch(multSearch, typeSearch);

                foreach (var filterContentModelType in FilterContentsWithGenericTypes.Where(x => x.Filter.Name == subQuery.Key.Filter.Name).Where(filterContentModelType => !filters.Select(x => x.Name).Contains(filterContentModelType.Filter.Name)))
                {
                    filterListInResultOrder.Add(filterContentModelType.Filter, filterContentModelType.Setting);
                }
            }

            var filterListInResultOrderKeys = filterListInResultOrder.Keys.ToArray();
            var multiResult = multSearch.GetResult().ToList();

            for (var i = 0; i < multiResult.Count; i++)
            {
                var option = new FilterContentWithOptions()
                {
                    Name = filterListInResultOrderKeys[i].Name,
                    FilterContentType = filterListInResultOrderKeys[i].GetType(),
                    FilterOptions     = filterListInResultOrderKeys[i].GetFilterOptions(multiResult[i], listingMode).ToArray(),
                };

                var settings = filterListInResultOrder[filterListInResultOrderKeys[i]];
                if (settings != null)
                {
                    option.Settings = settings;
                }

                filters.Add(option);
            }

            return(filters.OrderBy(x => x.Settings.SortOrder).ToList());
        }
예제 #7
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            var facet = searchResults
                        .StatisticalFacetFor(PropertyValuesExpressionObject);

            const int defaultMin = 0;
            const int defaultMax = 100;

            var min = facet.Count > 0 ? facet.Min : defaultMin;
            var max = facet.Count > 0 ? facet.Max : defaultMax;

            yield return(new FilterOptionModel(Name + "min", "min", min, defaultMin, -1));

            yield return(new FilterOptionModel(Name + "max", "max", max, defaultMax, -1));
        }
예제 #8
0
        protected virtual ContentReference GetContentLink(ContentQueryParameters parameters, ListingMode listingMode)
        {
            if (listingMode == ListingMode.WidgetListing)
            {
                return(ReferenceConverter.GetRootLink());
            }

            return(parameters.ReferenceId);
        }
예제 #9
0
 public IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
 {
     yield return(new FilterOptionModel("FreeTextFilter", string.Empty, string.Empty, string.Empty, -1));
 }
예제 #10
0
        public override IEnumerable <IFilterOptionModel> GetFilterOptions(SearchResults <IFacetContent> searchResults, ListingMode mode)
        {
            if (mode == ListingMode.MainListing)
            {
                yield return(new FilterOptionModel("Children", "Children", "Children", true, -1));
            }

            yield return(new FilterOptionModel("Descendents", "Descendents", "Descendents", false, -1));
        }