提问人:reuben2crown 提问时间:11/8/2023 更新时间:11/8/2023 访问量:66
将用户定义的规则转换为 C# 表达式
Convert a user defined rule to C# expression
问:
我有一组由用户定义的规则,我需要帮助将其转换为可以使用 linq 执行的规则表达式。
下面是示例 JSON 有效负载
{
"Rules": [
{
"Field": "year",
"Condition": "Equals",
"Value": "2020",
"Operator": "And"
},
{
"Field": "color",
"Condition": "NotEquals",
"Value": "black",
"Operator": "And"
},
{
"Field": "amount",
"Condition": "GreaterThan",
"Value": "100",
"Operator": "Or"
},
{
"Field": "country",
"Condition": "NotEquals",
"Value": "US"
}
]
}
要查询的数据如下表所示
同上 | 用户 ID | 问键 | 答 |
---|---|---|---|
01 | 22 | 年 | 1999 |
02 | 22 | 量 | 150 |
03 | 40 | 国家 | 我们 |
04 | 22 | 颜色 | 红 |
05 | 40 | 颜色 | 黑 |
06 | 40 | 年 | 2020 |
07 | 22 | 国家 | 法国 |
在应用规则之前,可以将这些内容加载到列表中。该规则应该一次评估一个用户。
我已将JSON转换为下面的模型,但我无法弄清楚如何实现规则
public class BusinessRule
{
public List<RuleModel> Rules { get; set; }
}
public class RuleModel
{
public string Field { get; set; }
public RuleConditionEnum Condition { get; set; }
public string Value { get; set; }
public RuleOperatorEnum? Operator { get; set; }
}
public enum RuleConditionEnum
{
Equals = 1,
NotEquals,
Contains,
NotContains,
StartsWith,
EndsWith,
GreaterThan,
LessThan,
GreaterOrEqual,
LessOrEqual
}
public enum RuleOperatorEnum
{
And = 1,
Or
}
我将不胜感激示例代码的任何帮助。
答: 暂无答案
评论