public void Serialize(ref JsonWriter writer, ISpanGapQuery value, IJsonFormatterResolver formatterResolver)
        {
            if (value == null || SpanGapQuery.IsConditionless(value))
            {
                writer.WriteNull();
                return;
            }

            writer.WriteBeginObject();
            var inferrer = formatterResolver.GetConnectionSettings().Inferrer;

            writer.WritePropertyName(inferrer.Field(value.Field));
            writer.WriteInt32(value.Width.Value);
            writer.WriteEndObject();
        }
示例#2
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var gapQuery = value as ISpanGapQuery;

            if (value == null || SpanGapQuery.IsConditionless(gapQuery))
            {
                writer.WriteNull();
                return;
            }
            var settings  = serializer.GetConnectionSettings();
            var fieldName = settings.Inferrer.Field(gapQuery.Field);

            writer.WriteStartObject();
            writer.WritePropertyName(fieldName);
            writer.WriteValue(gapQuery.Width);
            writer.WriteEndObject();
        }
        public ISpanGapQuery Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver)
        {
            if (reader.GetCurrentJsonToken() == JsonToken.Null)
            {
                return(null);
            }

            var count = 0;
            var query = new SpanGapQuery();

            while (reader.ReadIsInObject(ref count))
            {
                if (count > 1)
                {
                    continue;
                }

                query.Field = reader.ReadPropertyName();
                query.Width = reader.ReadInt32();
            }

            return(query);
        }