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); }
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); }
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); }
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); }