public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var filter = new GeoBoundingBoxFilterDescriptor(); IGeoBoundingBoxFilter f = filter; if (reader.TokenType != JsonToken.StartObject) { return(null); } var depth = reader.Depth; while (reader.Read() && reader.Depth >= depth && reader.Value != null) { var property = reader.Value as string; switch (property) { case "_cache": reader.Read(); f.Cache = reader.Value as bool?; break; case "_name": reader.Read(); f.FilterName = reader.Value as string; break; case "_cache_key": reader.Read(); f.CacheKey = reader.Value as string; break; case "type": reader.Read(); f.GeoExecution = (reader.Value as string).ToEnum <GeoExecution>(); break; default: f.Field = property; ReadBox(f, reader); break; } } return(filter); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var filter = new GeoBoundingBoxFilterDescriptor(); IGeoBoundingBoxFilter f = filter; if (reader.TokenType != JsonToken.StartObject) return null; var depth = reader.Depth; while (reader.Read() && reader.Depth >= depth && reader.Value != null) { var property = reader.Value as string; switch(property) { case "_cache": reader.Read(); f.Cache = reader.Value as bool?; break; case "_name": reader.Read(); f.FilterName = reader.Value as string; break; case "_cache_key": reader.Read(); f.CacheKey = reader.Value as string; break; case "type": reader.Read(); f.GeoExecution = Enum.Parse(typeof(GeoExecution), reader.Value as string) as GeoExecution?; break; default: f.Field = property; ReadBox(f, reader); break; } } return filter; }