public override void Execute(RuleExecution context) { //we passed in at definition time what the code expressions for various properties are //then they are evaluated so this.PropertyName for example would now be "the value of the property" if we passed //in a CodePrimitiveExpression like "true" or "false" or "1" etc those values would now be here RuleExpressionResult applicationIDResult = RuleExpressionWalker.Evaluate(context, _applicationID); RuleExpressionResult typeIDResult = RuleExpressionWalker.Evaluate(context, _typeID); RuleExpressionResult ruleIDResult = RuleExpressionWalker.Evaluate(context, _ruleID); RuleExpressionResult ruleNameResult = RuleExpressionWalker.Evaluate(context, _ruleName); RuleExpressionResult resultResult = RuleExpressionWalker.Evaluate(context, _result); RuleExpressionResult createDateResult = RuleExpressionWalker.Evaluate(context, _createDate); RuleExpressionResult referenceIDResult = RuleExpressionWalker.Evaluate(context, _referenceID); //this is where the work is actually done if (applicationIDResult != null && ruleIDResult != null && ruleNameResult != null && resultResult != null && createDateResult != null) { RuleStats ruleStats = new RuleStats(); ruleStats.Insert((Guid)applicationIDResult.Value, (Guid)typeIDResult.Value, (Guid)ruleIDResult.Value, (string)ruleNameResult.Value, (bool)resultResult.Value, (DateTime)createDateResult.Value, (Guid)referenceIDResult.Value); } }
public override void Execute(RuleExecution context) { RuleExpressionResult result = RuleExpressionWalker.Evaluate(context, _message); if (result != null) { Console.WriteLine(result.Value); } }
private void EvaluateRule(Rule rule, ref MSRuleSetEvaluationResult ruleSetEvaluationResult, ref RuleValidation rv) { rv.Errors.Clear(); IRuleExpression ruleExpression = (IRuleExpression)((RuleExpressionCondition)rule.Condition).Expression; RuleExecution re = new RuleExecution(rv, _instanceOfObject); RuleExpressionInfo info = RuleExpressionWalker.Validate(rv, (CodeExpression)ruleExpression, true); if (rv.Errors.Count > 0) { //string validationErrorMessages = Helper.GetErrorMessageFromValidationErrorsCollection(errors); ruleSetEvaluationResult.AddValidationError(rule.Name, rule.Description, rv.Errors); } else { RuleExpressionResult result = RuleExpressionWalker.Evaluate(re, (CodeExpression)ruleExpression); ruleSetEvaluationResult.AddEvaluationResult(rule.Name, rule.Description, result); } }
private RuleExpressionResult Evaluate(RuleExecution execution, CodeExpression expression) { return(RuleExpressionWalker.Evaluate(execution, expression)); }