Exemplo n.º 1
0
        protected virtual Aggregation GetRangeAggregation(RangeFilter rangeFilter, IList <AggregationResponse> aggregationResponses)
        {
            var result = new Aggregation
            {
                AggregationType = "range",
                Field           = rangeFilter.Key,
                Items           = GetRangeAggregationItems(rangeFilter.Key, rangeFilter.Values, aggregationResponses).ToArray(),
            };

            return(result);
        }
Exemplo n.º 2
0
        public static IBrowseFilter Copy(this IBrowseFilter filter, IList <string> keys)
        {
            IBrowseFilter result = null;

            if (filter != null && keys != null)
            {
                // get values that we have filters set for
                var values = filter.GetValues().Where(v => keys.Contains(v.Id, StringComparer.OrdinalIgnoreCase));

                var attributeFilter  = filter as AttributeFilter;
                var rangeFilter      = filter as RangeFilter;
                var priceRangeFilter = filter as PriceRangeFilter;
                var categoryFilter   = filter as CategoryFilter;

                if (attributeFilter != null)
                {
                    var newFilter = new AttributeFilter();
                    newFilter.InjectFrom(filter);
                    newFilter.Values = values.OfType <AttributeFilterValue>().ToArray();
                    result           = newFilter;
                }
                else if (rangeFilter != null)
                {
                    var newFilter = new RangeFilter();
                    newFilter.InjectFrom(filter);

                    newFilter.Values = values.OfType <RangeFilterValue>().ToArray();
                    result           = newFilter;
                }
                else if (priceRangeFilter != null)
                {
                    var newFilter = new PriceRangeFilter();
                    newFilter.InjectFrom(filter);

                    newFilter.Values = values.OfType <RangeFilterValue>().ToArray();
                    result           = newFilter;
                }
                else if (categoryFilter != null)
                {
                    var newFilter = new CategoryFilter();
                    newFilter.InjectFrom(filter);
                    newFilter.Values = values.OfType <CategoryFilterValue>().ToArray();
                    result           = newFilter;
                }
            }

            return(result);
        }
Exemplo n.º 3
0
        protected virtual IList <AggregationRequest> GetRangeFilterAggregationRequests(RangeFilter rangeFilter, IList <IFilter> existingFilters)
        {
            var result = rangeFilter.Values?.Select(v => GetRangeFilterValueAggregationRequest(rangeFilter.Key, v, existingFilters)).ToList();

            return(result);
        }