Skip to content

Commit 78d918b

Browse files
committed
simplified GetRangeQuery
1 parent 24b1793 commit 78d918b

File tree

1 file changed

+17
-23
lines changed

1 file changed

+17
-23
lines changed

src/Nest/QueryDsl/TermLevel/Range/RangeQueryJsonConverter.cs

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -37,36 +37,30 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
3737

3838
private static IRangeQuery GetRangeQuery(JsonSerializer serializer, JObject jo)
3939
{
40-
var nameIsValid = !jo.Properties().Any(p => p.Name == "format" || p.Name == "time_zone");
40+
IRangeQuery fq = FromJson.ReadAs<DateRangeQuery>(jo.CreateReader(), serializer);
41+
var isNumeric = false;
42+
var isLong = false;
4143

42-
var isLong = nameIsValid && CheckType(jo, JTokenType.Integer);
43-
var isNumeric = nameIsValid && CheckType(jo, JTokenType.Float);
44-
45-
IRangeQuery fq;
46-
47-
if (isNumeric)
44+
foreach (var property in jo.Properties())
4845
{
49-
fq = FromJson.ReadAs<NumericRangeQuery>(jo.CreateReader(), serializer);
50-
}
51-
else if (isLong)
52-
{
53-
fq = FromJson.ReadAs<LongRangeQuery>(jo.CreateReader(), serializer);
54-
}
55-
else
56-
{
57-
fq = FromJson.ReadAs<DateRangeQuery>(jo.CreateReader(), serializer);
46+
if (property.Name == "format" || property.Name == "time_zone")
47+
return fq;
48+
if (_rangeKeys.Contains(property.Name))
49+
{
50+
if (property.Value.Type == JTokenType.Float)
51+
isNumeric = true;
52+
else if (property.Value.Type == JTokenType.Integer)
53+
isLong = true;
54+
}
5855
}
56+
if (isNumeric)
57+
return FromJson.ReadAs<NumericRangeQuery>(jo.CreateReader(), serializer);
58+
if (isLong)
59+
return FromJson.ReadAs<LongRangeQuery>(jo.CreateReader(), serializer);
5960

6061
return fq;
6162
}
6263

63-
private static bool CheckType(JObject jo, JTokenType jTokenType)
64-
{
65-
return jo.Properties().Any(p =>
66-
_rangeKeys.Contains(p.Name) &&
67-
p.Value.Type == jTokenType);
68-
}
69-
7064
private static TReturn GetPropValue<TReturn>(JObject jObject, string field)
7165
{
7266
JToken jToken = null;

0 commit comments

Comments
 (0)