private IAggregate GetGeoBoundsAggregate(JsonReader reader, JsonSerializer serializer) { reader.Read(); var o = JObject.Load(reader); if (o == null) { return(null); } var geoBoundsMetric = new GeoBoundsAggregate(); JToken topLeftToken; if (o.TryGetValue(Parser.TopLeft, out topLeftToken) && topLeftToken != null) { var topLeft = topLeftToken.ToObject <LatLon>(); if (topLeft != null) { geoBoundsMetric.Bounds.TopLeft = topLeft; } } JToken bottomRightToken; if (o.TryGetValue(Parser.BottomRight, out bottomRightToken) && bottomRightToken != null) { var bottomRight = bottomRightToken.ToObject <LatLon>(); if (bottomRight != null) { geoBoundsMetric.Bounds.BottomRight = bottomRight; } } reader.Read(); return(geoBoundsMetric); }
private IAggregate GetGeoBoundsAggregate(ref JsonReader reader, IJsonFormatterResolver formatterResolver, IReadOnlyDictionary <string, object> meta) { if (reader.GetCurrentJsonToken() == JsonToken.Null) { reader.ReadNext(); return(null); } var geoBoundsMetric = new GeoBoundsAggregate { Meta = meta }; var latLonFormatter = formatterResolver.GetFormatter <LatLon>(); var count = 0; while (reader.ReadIsInObject(ref count)) { var propertyName = reader.ReadPropertyNameSegmentRaw(); if (GeoBoundsFields.TryGetValue(propertyName, out var value)) { switch (value) { case 0: geoBoundsMetric.Bounds.TopLeft = latLonFormatter.Deserialize(ref reader, formatterResolver); break; case 1: geoBoundsMetric.Bounds.BottomRight = latLonFormatter.Deserialize(ref reader, formatterResolver); break; } } else { reader.ReadNextBlock(); } } return(geoBoundsMetric); }
private IAggregate GetGeoBoundsMetric(JsonReader reader, JsonSerializer serializer) { reader.Read(); var o = JObject.Load(reader); if (o == null) return null; var geoBoundsMetric = new GeoBoundsAggregate(); JToken topLeftToken; if (o.TryGetValue("top_left", out topLeftToken) && topLeftToken != null) { var topLeft = topLeftToken.ToObject<LatLon>(); if (topLeft != null) geoBoundsMetric.Bounds.TopLeft = topLeft; } JToken bottomRightToken; if (o.TryGetValue("bottom_right", out bottomRightToken) && bottomRightToken != null) { var bottomRight = bottomRightToken.ToObject<LatLon>(); if (bottomRight != null) geoBoundsMetric.Bounds.BottomRight = bottomRight; } reader.Read(); return geoBoundsMetric; }