RulesEngine
RulesEngine copied to clipboard
How to do nested if else
Is there way to do such nested if rules? Is there setting to make the parent rule expression also evaluated even if there are nested child rules?
if(loyaltyFactor > 4)
{
if(totalOrder > 3)
{
...
}
else
{
...
}
}
else
{
...
}
[
{
"WorkflowName": "Discount",
"Rules": [
{
"RuleName": "GiveDiscount30NestedOrExample",
"SuccessEvent": "30",
"ErrorMessage": "One or more adjust rules failed.",
"ErrorType": "Error",
"Operator": "OrElse",
"Rules": [
{
"RuleName": "ParentRule",
"ErrorMessage": "One or more adjust rules failed.",
"ErrorType": "Error",
"RuleExpressionType": "LambdaExpression",
"Operator": "OrElse",
"Expression": "input1.loyaltyFactor > 4",
"Rules": [
{
"RuleName": "SubHighLoyaltyLowNumberOrders",
"ErrorMessage": "One or more adjust rules failed.",
"ErrorType": "Error",
"RuleExpressionType": "LambdaExpression",
"Expression": "input2.totalOrders <= 3"
},
{
"RuleName": "SubHighLoyaltyHighNumberOfTotalOrders",
"ErrorMessage": "One or more adjust rules failed.",
"ErrorType": "Error",
"RuleExpressionType": "LambdaExpression",
"Expression": "input2.totalOrders > 3"
}
]
},
{
"RuleName": "LowLayaltyHighNumberOfTotalOrders",
"ErrorMessage": "One or more adjust rules failed.",
"ErrorType": "Error",
"RuleExpressionType": "LambdaExpression",
"Expression": "input2.totalOrders > 15"
}
]
}
]
}
]
Also hoping this issue can get fixed to make the Rules Engine much power useful.
@ying234 complex scenarios can be enabled via actions such as evaluateRule and ExecuteActionWorkflowAsync . Please refer this example - https://microsoft.github.io/RulesEngine/#evaluaterule
@abbasc52 looks good for the evaluateRule. Thank you!