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);
            }
        }
Example #2
0
        public override void Execute(RuleExecution context)
        {
            RuleExpressionResult result = RuleExpressionWalker.Evaluate(context, _message);

            if (result != null)
            {
                Console.WriteLine(result.Value);
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
 private RuleExpressionResult Evaluate(RuleExecution execution, CodeExpression expression)
 {
     return(RuleExpressionWalker.Evaluate(execution, expression));
 }