Skip to content

How to do nested if else #574

Open
Open

Description

@ying234

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"
          }
        ]
      }
    ]
  }
]

Activity

  1. jjrobinson commented on Jan 23, 2024

    @jjrobinson

    Also hoping this issue can get fixed to make the Rules Engine much power useful.

  2. abbasc52 commented on Jan 26, 2024

    @abbasc52

    Jerry Ying (@ying234) complex scenarios can be enabled via actions such as evaluateRule and ExecuteActionWorkflowAsync . Please refer this example - https://microsoft.github.io/RulesEngine/#evaluaterule

  3. ying234 commented on Feb 5, 2024

    @ying234
    Author

    Abbas Cyclewala (@abbasc52) looks good for the evaluateRule. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions