Exemplo n.º 1
0
        protected virtual int GetSortOrder(FacetFilterSetting setting)
        {
            if (setting.SortOrder > 0)
            {
                return(setting.SortOrder);
            }

            return(_filters.Any() ? _filters.Values.Select(x => x.SortOrder).Max() + 1 : 1);
        }
Exemplo n.º 2
0
        public FilterConfiguration Facet <TFilter>(FacetFilterSetting setting)
            where TFilter : IFilterContent
        {
            var filter = Activator.CreateInstance <TFilter>();

            setting.SortOrder = GetSortOrder(setting);
            _filters.Add(filter, setting);

            return(this);
        }
Exemplo n.º 3
0
        public override ITypeSearch <T> AddfacetToQuery(ITypeSearch <T> query, FacetFilterSetting setting)
        {
            var converted = Expression.Convert(PropertyValuesExpression.Body, typeof(string));

            var expression = Expression.Lambda <Func <T, string> >(converted, PropertyValuesExpression.Parameters);

            return(query.TermsFacetFor(expression, request =>
            {
                if (setting.MaxFacetHits.HasValue)
                {
                    request.Size = setting.MaxFacetHits;
                }
            }));
        }
Exemplo n.º 4
0
        public FilterConfiguration RangeFacet <TContent, TValue>(
            Expression <Func <TContent, TValue> > property,
            Func <FilterBuilder <TContent>, IEnumerable <TValue>, FilterBuilder <TContent> > filterBuilder,
            FacetFilterSetting setting)
            where TContent : IContent
        {
            var filter = Activator.CreateInstance <RangeFacet <TContent, TValue> >();

            filter.PropertyValuesExpression = property;
            filter.FilterBuilder            = filterBuilder;

            setting.SortOrder = GetSortOrder(setting);
            _filters.Add(filter, setting);

            return(this);
        }
Exemplo n.º 5
0
        public FilterConfiguration Termsfacet <TContent>(
            Expression <Func <TContent, string> > property,
            Func <FilterBuilder <TContent>, string, FilterBuilder <TContent> > aggregate,
            FacetFilterSetting setting)
            where TContent : IContent
        {
            var filter = Activator.CreateInstance <TermsFacet <TContent> >();

            filter.PropertyValuesExpression = property;
            filter.Aggregate = aggregate;

            setting.SortOrder = GetSortOrder(setting);
            _filters.Add(filter, setting);

            return(this);
        }
Exemplo n.º 6
0
 public override ITypeSearch <CatalogContentBase> AddfacetToQuery(ITypeSearch <CatalogContentBase> query, FacetFilterSetting setting)
 {
     return(query.TermsFacetFor(x => x.LanguageName(), request =>
     {
         if (setting.MaxFacetHits.HasValue)
         {
             request.Size = setting.MaxFacetHits;
         }
     }));
 }
Exemplo n.º 7
0
 public ISearch AddfacetToQuery(ISearch query, FacetFilterSetting setting)
 {
     return(AddfacetToQuery((ITypeSearch <TContentData>)query, setting));
 }
Exemplo n.º 8
0
 public abstract ITypeSearch <TContentData> AddfacetToQuery(ITypeSearch <TContentData> query, FacetFilterSetting setting);
Exemplo n.º 9
0
 public override ITypeSearch <CatalogContentBase> AddfacetToQuery(ITypeSearch <CatalogContentBase> query, FacetFilterSetting setting)
 {
     return(query);
 }
Exemplo n.º 10
0
 public override ITypeSearch <EntryContentBase> AddfacetToQuery(ITypeSearch <EntryContentBase> query, FacetFilterSetting setting)
 {
     return(query.TermsFacetFor(x => x.SelectedMarkets()));
 }
Exemplo n.º 11
0
 public override ITypeSearch <TContent> AddfacetToQuery(ITypeSearch <TContent> query, FacetFilterSetting setting)
 {
     return(query.StatisticalFacetFor(PropertyValuesExpressionObject));
 }
Exemplo n.º 12
0
 public ISearch AddfacetToQuery(ISearch query, FacetFilterSetting setting)
 {
     return(query);
 }