Example #1
0
        private RangeBucket <Variation> GetVariations(string variationName)
        {
            var result = new RangeBucket <Variation>(10000);

            result.Add(100, new Variation(1, variationName, null, 100, false));
            return(result);
        }
        private RangeBucket <Variation> GetVariations(string variationName = null)
        {
            var result = new RangeBucket <Variation>(10000);

            result.Add(100, GetVariation(variationName));
            return(result);
        }
Example #3
0
        private static Agg_Monad RangeBucket2AggMonad(RangeBucket r)
        {
            var    a = new Agg_Monad();
            string l = null;

            if (r.From != null)
            {
                if (r.From > 1000)
                {
                    l = "1000万元以上";
                }
                else if (r.From > 500)
                {
                    l = "500-1000万元";
                }
                else if (r.From > 50)
                {
                    l = "50-500万元";
                }
                else if (r.From > 10)
                {
                    l = "10-50万元";
                }
            }
            else
            {
                l = "10万元以下";
            }
            a.label = l;
            a.count = r.DocCount;
            a.value = r.Key;
            return(a);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var item      = JObject.Load(reader);
            var typeToken = item.SelectToken("Data.@type") ?? item.SelectToken("data.@type");

            IBucket value = null;

            if (typeToken != null)
            {
                string type = typeToken.Value <string>();
                IDictionary <string, IAggregate> aggregations = null;
                var aggregationsToken = item.SelectToken("Aggregations") ?? item.SelectToken("aggregations");
                aggregations = aggregationsToken?.ToObject <IDictionary <string, IAggregate> >();

                switch (type)
                {
                case "datehistogram":
                    var timeZoneToken = item.SelectToken("Data.@timezone") ?? item.SelectToken("data.@timezone");
                    var kind          = timeZoneToken != null ? DateTimeKind.Unspecified : DateTimeKind.Utc;
                    var key           = item.SelectToken("Key") ?? item.SelectToken("key");
                    var date          = new DateTime(_epochTicks + ((long)key * TimeSpan.TicksPerMillisecond), kind);

                    value = new DateHistogramBucket(date, aggregations);
                    break;

                case "range":
                    value = new RangeBucket(aggregations);
                    break;

                case "string":
                    value = new KeyedBucket <string>(aggregations);
                    break;

                case "double":
                    value = new KeyedBucket <double>(aggregations);
                    break;

                case "object":
                    value = new KeyedBucket <object>(aggregations);
                    break;
                }
            }

            if (value == null)
            {
                value = new KeyedBucket <object>();
            }

            serializer.Populate(item.CreateReader(), value);

            return(value);
        }
Example #5
0
        private RangeBucket <int> GetTestRangeBucket(int maxVal = 100, bool continousRange = true)
        {
            var result = new RangeBucket <int>(maxVal, continousRange);
            List <KeyValuePair <int, int> > weightValuePairs = new List <KeyValuePair <int, int> >()
            {
                new KeyValuePair <int, int>(20, 1),
                new KeyValuePair <int, int>(20, 2),
                new KeyValuePair <int, int>(20, 3),
                new KeyValuePair <int, int>(20, 4),
                new KeyValuePair <int, int>(20, 5),
            };

            foreach (var weightKeyPair in weightValuePairs)
            {
                result.Add(weightKeyPair.Key, weightKeyPair.Value);
            }

            return(result);
        }
Example #6
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var item      = JObject.Load(reader);
            var typeToken = item.SelectToken("Data.@type") ?? item.SelectToken("data.@type");

            IBucket value = null;

            if (typeToken != null)
            {
                string type = typeToken.Value <string>();
                switch (type)
                {
                case "datehistogram":
                    value = new DateHistogramBucket();
                    break;

                case "range":
                    value = new RangeBucket();
                    break;

                case "string":
                    value = new KeyedBucket <string>();
                    break;

                case "double":
                    value = new KeyedBucket <double>();
                    break;

                case "object":
                    value = new KeyedBucket <object>();
                    break;
                }
            }

            if (value == null)
            {
                value = new KeyedBucket <object>();
            }

            serializer.Populate(item.CreateReader(), value);
            return(value);
        }
        private double GetBucketValue(RangeBucket bucket, string key)
        {
            var res = bucket.GetSingleMetricSubAggregationValue <double?>(key);

            return(Math.Round(res.GetValueOrDefault(0.0), 2) * 100);
        }