public override void WriteJson( JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteStartObject(); FeedRangeInternalConverter.WriteJObject(writer, value, serializer); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value is FeedRangeCompositeContinuation feedRangeCompositeContinuation) { writer.WriteStartObject(); writer.WritePropertyName(FeedRangeCompositeContinuationConverter.VersionPropertyName); writer.WriteValue(FeedRangeContinuationVersion.V1); writer.WritePropertyName(FeedRangeCompositeContinuationConverter.RidPropertyName); writer.WriteValue(feedRangeCompositeContinuation.ContainerRid); writer.WritePropertyName(FeedRangeCompositeContinuationConverter.ContinuationPropertyName); serializer.Serialize(writer, feedRangeCompositeContinuation.CompositeContinuationTokens.ToArray()); FeedRangeInternalConverter.WriteJObject(writer, feedRangeCompositeContinuation.FeedRange, serializer); writer.WriteEndObject(); return; } throw new JsonSerializationException(ClientResources.FeedToken_UnrecognizedFeedToken); }
public override object ReadJson( JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) { return(null); } if (reader.TokenType != JsonToken.StartObject) { throw new JsonReaderException(); } JObject jObject = JObject.Load(reader); return(FeedRangeInternalConverter.ReadJObject(jObject, serializer)); }
public override object ReadJson( JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) { return(null); } if (reader.TokenType != JsonToken.StartObject) { throw new JsonReaderException(); } JObject jObject = JObject.Load(reader); if (!jObject.TryGetValue(FeedRangeCompositeContinuationConverter.ContinuationPropertyName, out JToken continuationJToken)) { throw new JsonReaderException(); } string containerRid = null; if (jObject.TryGetValue(FeedRangeCompositeContinuationConverter.RidPropertyName, out JToken ridJToken)) { containerRid = ridJToken.Value <string>(); } List <CompositeContinuationToken> ranges = serializer.Deserialize <List <CompositeContinuationToken> >(continuationJToken.CreateReader()); FeedRangeInternal feedRangeInternal = FeedRangeInternalConverter.ReadJObject(jObject, serializer); return(new FeedRangeCompositeContinuation( containerRid: containerRid, feedRange: feedRangeInternal, deserializedTokens: ranges)); }