Пример #1
0
        private AggregationDescriptor <T> _SetInnerAggregation <TAggregation>(
            string key,
            Func <TAggregation, TAggregation> selector
            , Action <IAggregationContainer, TAggregation> setter
            )
            where TAggregation : IAggregationDescriptor, new()

        {
            var innerDescriptor = selector(new TAggregation());
            var descriptor      = new AggregationDescriptor <T>();

            setter(descriptor, innerDescriptor);
            var bucket = innerDescriptor as IBucketAggregator;
            IAggregationContainer self = this;

            if (self.Aggregations == null)
            {
                self.Aggregations = new Dictionary <string, IAggregationContainer>();
            }

            if (bucket != null && bucket.Aggregations.HasAny())
            {
                IAggregationContainer d = descriptor;
                d.Aggregations = bucket.Aggregations;
            }
            self.Aggregations[key] = descriptor;
            return(this);
        }
Пример #2
0
        private AggregationDescriptor <T> _SetInnerAggregation <TAggregation>(
            string key,
            Func <TAggregation, TAggregation> selector
            , Action <AggregationDescriptor <T>, TAggregation> setter
            )
            where TAggregation : IAggregationDescriptor, new()

        {
            var innerDescriptor = selector(new TAggregation());
            var descriptor      = new AggregationDescriptor <T>();

            setter(descriptor, innerDescriptor);
            var bucket = innerDescriptor as IBucketAggregationDescriptor <T>;

            if (bucket != null && bucket.NestedAggregations.HasAny())
            {
                descriptor._NestedAggregations = bucket.NestedAggregations;
            }
            this._Aggregations[key] = descriptor;
            return(this);
        }