|
@@ -2142,7 +2142,18 @@ namespace InABox.Core
|
|
|
}
|
|
|
}
|
|
|
else if (string.Equals(tag, "Expression"))
|
|
|
- propertyName = reader.GetString() ?? "";
|
|
|
+ {
|
|
|
+ var propName = reader.GetString() ?? "";
|
|
|
+ if (propName.StartsWith('{'))
|
|
|
+ {
|
|
|
+ var exp = CoreUtils.StringToExpression(propName);
|
|
|
+ propertyName = CoreUtils.ExpressionToString(typeof(object), exp);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ propertyName = propName;
|
|
|
+ }
|
|
|
+ }
|
|
|
else if (string.Equals(tag, "Operator"))
|
|
|
{
|
|
|
op = ReadEnum<Operator>(ref reader);
|
|
@@ -2161,7 +2172,7 @@ namespace InABox.Core
|
|
|
{
|
|
|
while (reader.Read() && reader.TokenType != JsonTokenType.EndArray)
|
|
|
{
|
|
|
- var and = Read(ref reader, typeof(IFilter), options);
|
|
|
+ var and = Read(ref reader, typeToConvert, options);
|
|
|
if (and != null)
|
|
|
ands.Add(and);
|
|
|
}
|
|
@@ -2170,7 +2181,7 @@ namespace InABox.Core
|
|
|
{
|
|
|
while (reader.Read() && reader.TokenType != JsonTokenType.EndArray)
|
|
|
{
|
|
|
- var or = Read(ref reader, typeof(IFilter), options);
|
|
|
+ var or = Read(ref reader, typeToConvert, options);
|
|
|
if (or != null)
|
|
|
ors.Add(or);
|
|
|
}
|