|
@@ -2152,11 +2152,13 @@ namespace InABox.Core
|
|
|
else if (string.Equals(tag, "Expression"))
|
|
|
propertyName = reader.GetString() ?? "";
|
|
|
else if (string.Equals(tag, "Operator"))
|
|
|
- op = Enum.Parse<Operator>(reader.GetString());
|
|
|
+ {
|
|
|
+ op = ReadEnum<Operator>(ref reader);
|
|
|
+ }
|
|
|
else if (string.Equals(tag, "IsNot"))
|
|
|
isNot = reader.GetBoolean();
|
|
|
else if (string.Equals(tag, "FilterConstant"))
|
|
|
- value = Enum.Parse<FilterConstant>(reader.GetString());
|
|
|
+ value = ReadEnum<FilterConstant>(ref reader);
|
|
|
else if (string.Equals(tag, "CustomValue"))
|
|
|
value = new CustomFilterValue(Convert.FromBase64String(reader.GetString()));
|
|
|
else if (string.Equals(tag, "Value"))
|
|
@@ -2202,6 +2204,10 @@ namespace InABox.Core
|
|
|
{
|
|
|
result.Value = CoreUtils.ChangeType(value, result.Type.MakeArrayType());
|
|
|
}
|
|
|
+ else if(value is FilterConstant || value is CustomFilterValue)
|
|
|
+ {
|
|
|
+ result.Value = value;
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
result.Value = CoreUtils.ChangeType(value, result.Type);
|