private IAggregate GetExtendedStatsAggregate(StatsAggregate statsMetric, JsonReader reader) { var extendedStatsMetric = new ExtendedStatsAggregate() { Average = statsMetric.Average, Count = statsMetric.Count, Max = statsMetric.Max, Min = statsMetric.Min, Sum = statsMetric.Sum }; reader.Read(); extendedStatsMetric.SumOfSquares = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.Variance = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.StdDeviation = (reader.Value as double?); reader.Read(); if (reader.TokenType != JsonToken.EndObject) { var bounds = new StandardDeviationBounds(); reader.Read(); reader.Read(); if ((reader.Value as string) == "upper") { reader.Read(); bounds.Upper = reader.Value as double?; } reader.Read(); if ((reader.Value as string) == "lower") { reader.Read(); bounds.Lower = reader.Value as double?; } extendedStatsMetric.StdDeviationBounds = bounds; reader.Read(); reader.Read(); } while (reader.TokenType != JsonToken.EndObject && (reader.Value as string).Contains("_as_string")) { // std_deviation_bounds is an object, so we need to skip its properties if ((reader.Value as string).Equals("std_deviation_bounds_as_string")) { reader.Read(); reader.Read(); reader.Read(); reader.Read(); } reader.Read(); reader.Read(); } return(extendedStatsMetric); }
private IAggregate GetExtendedStatsAggregate(ref JsonReader reader, StatsAggregate statsMetric, IReadOnlyDictionary <string, object> meta) { var extendedStatsMetric = new ExtendedStatsAggregate { Average = statsMetric.Average, Count = statsMetric.Count, Max = statsMetric.Max, Min = statsMetric.Min, Sum = statsMetric.Sum, Meta = statsMetric.Meta }; extendedStatsMetric.SumOfSquares = reader.ReadNullableDouble(); reader.ReadNext(); // , reader.ReadNext(); // "variance" reader.ReadNext(); // : extendedStatsMetric.Variance = reader.ReadNullableDouble(); reader.ReadNext(); // , reader.ReadNext(); // "std_deviation" reader.ReadNext(); // : extendedStatsMetric.StdDeviation = reader.ReadNullableDouble(); if (reader.GetCurrentJsonToken() != JsonToken.EndObject) { var bounds = new StandardDeviationBounds(); reader.ReadNext(); // , reader.ReadNext(); // "std_deviation_bounds" reader.ReadNext(); // : reader.ReadNext(); // { reader.ReadNext(); // "upper" reader.ReadNext(); // : bounds.Upper = reader.ReadNullableDouble(); reader.ReadNext(); // , reader.ReadNext(); // "lower" reader.ReadNext(); // : bounds.Lower = reader.ReadNullableDouble(); reader.ReadNext(); // } extendedStatsMetric.StdDeviationBounds = bounds; } // read any remaining _as_string fields while (reader.GetCurrentJsonToken() != JsonToken.EndObject) { reader.ReadNextBlock(); } return(extendedStatsMetric); }
private IAggregate GetExtendedStatsAggregate(StatsAggregate statsMetric, JsonReader reader) { var extendedStatsMetric = new ExtendedStatsAggregate() { Average = statsMetric.Average, Count = statsMetric.Count, Max = statsMetric.Max, Min = statsMetric.Min, Sum = statsMetric.Sum }; reader.Read(); extendedStatsMetric.SumOfSquares = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.Variance = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.StdDeviation = (reader.Value as double?); reader.Read(); string propertyName; if (reader.TokenType != JsonToken.EndObject) { var bounds = new StandardDeviationBounds(); reader.Read(); reader.Read(); propertyName = (string)reader.Value; if (propertyName == Parser.Upper) { reader.Read(); bounds.Upper = reader.Value as double?; } reader.Read(); propertyName = (string)reader.Value; if (propertyName == Parser.Lower) { reader.Read(); bounds.Lower = reader.Value as double?; } extendedStatsMetric.StdDeviationBounds = bounds; reader.Read(); reader.Read(); } propertyName = (string)reader.Value; while (reader.TokenType != JsonToken.EndObject && propertyName.Contains(Parser.AsStringSuffix)) { // std_deviation_bounds is an object, so we need to skip its properties if (propertyName.Equals(Parser.StdDeviationBoundsAsString)) { reader.Read(); reader.Read(); reader.Read(); reader.Read(); } reader.Read(); reader.Read(); } return(extendedStatsMetric); }
private IAggregate GetExtendedStatsAggregation(StatsAggregate statsMetric, JsonReader reader) { var extendedStatsMetric = new ExtendedStatsAggregate() { Average = statsMetric.Average, Count = statsMetric.Count, Max = statsMetric.Max, Min = statsMetric.Min, Sum = statsMetric.Sum }; reader.Read(); extendedStatsMetric.SumOfSquares = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.Variance = (reader.Value as double?); reader.Read(); reader.Read(); extendedStatsMetric.StdDeviation = (reader.Value as double?); reader.Read(); if (reader.TokenType != JsonToken.EndObject) { var bounds = new StandardDeviationBounds(); reader.Read(); reader.Read(); if ((reader.Value as string) == "upper") { reader.Read(); bounds.Upper = reader.Value as double?; } reader.Read(); if ((reader.Value as string) == "lower") { reader.Read(); bounds.Lower = reader.Value as double?; } extendedStatsMetric.StdDeviationBounds = bounds; reader.Read(); reader.Read(); } while (reader.TokenType != JsonToken.EndObject && (reader.Value as string).Contains("_as_string")) { // std_deviation_bounds is an object, so we need to skip its properties if ((reader.Value as string).Equals("std_deviation_bounds_as_string")) { reader.Read(); reader.Read(); reader.Read(); reader.Read(); } reader.Read(); reader.Read(); } return extendedStatsMetric; }