Beispiel #1
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);
            }
        }
Beispiel #2
0
        public override bool Validate(RuleValidation validator)
        {
            ValidationError error;

            if (_message == null)
            {
                error = new ValidationError("Message cannot be null", 123);
                validator.Errors.Add(error);
                return(false);
            }
            else
            {
                RuleExpressionInfo result = RuleExpressionWalker.Validate(validator, _message, false);
                if ((result == null) || (result.ExpressionType != typeof(string)))
                {
                    error = new ValidationError("Message must return string result", 123);
                    validator.Errors.Add(error);
                    return(false);
                }
            }
            return(validator.Errors.Count == 0);
        }
        public override bool Validate(RuleValidation validator)
        {
            ValidationError error;

            if (_applicationID == null || _typeID == null || _ruleID == null || _ruleName == null || _result == null || _createDate == null || _referenceID == null)
            {
                error = new ValidationError("Rule Stat Parameters cannot be null", 123);
                validator.Errors.Add(error);
                return(false);
            }
            else
            {
                RuleExpressionInfo applicationIDResult = RuleExpressionWalker.Validate(validator, _applicationID, false);
                RuleExpressionInfo typeIDResult        = RuleExpressionWalker.Validate(validator, _typeID, false);
                RuleExpressionInfo ruleIDResult        = RuleExpressionWalker.Validate(validator, _ruleID, false);
                RuleExpressionInfo ruleNameResult      = RuleExpressionWalker.Validate(validator, _ruleName, false);
                RuleExpressionInfo resultResult        = RuleExpressionWalker.Validate(validator, _result, false);
                RuleExpressionInfo createDateResult    = RuleExpressionWalker.Validate(validator, _createDate, false);
                RuleExpressionInfo referenceIDResult   = RuleExpressionWalker.Validate(validator, _referenceID, false);

                if ((applicationIDResult == null) || (applicationIDResult.ExpressionType != typeof(Guid)))
                {
                    error = new ValidationError("application id must be Guid", 123);
                    validator.Errors.Add(error);
                    return(false);
                }

                if ((typeIDResult == null) || (typeIDResult.ExpressionType != typeof(Guid)))
                {
                    error = new ValidationError("type id must be Guid", 123);
                    validator.Errors.Add(error);
                    return(false);
                }


                if ((ruleIDResult == null) || (ruleIDResult.ExpressionType != typeof(Guid)))
                {
                    error = new ValidationError("rule id must be a guid", 123);
                    validator.Errors.Add(error);
                    return(false);
                }

                if ((ruleNameResult == null) || (ruleNameResult.ExpressionType != typeof(string)))
                {
                    error = new ValidationError("rule name must be a string", 123);
                    validator.Errors.Add(error);
                    return(false);
                }

                if ((resultResult == null) || (resultResult.ExpressionType != typeof(bool)))
                {
                    error = new ValidationError("result must be a true or false", 123);
                    validator.Errors.Add(error);
                    return(false);
                }

                if ((createDateResult == null) || (createDateResult.ExpressionType != typeof(DateTime)))
                {
                    error = new ValidationError("create date must be a DateTime", 123);
                    return(false);
                }

                if ((referenceIDResult == null) || (referenceIDResult.ExpressionType != typeof(Guid)))
                {
                    error = new ValidationError("reference id must be Guid", 123);
                    validator.Errors.Add(error);
                    return(false);
                }
            }
            return(validator.Errors.Count == 0);
        }
Beispiel #4
0
        public RuleExpressionInfo ValidateExpression(RuleValidation validation, CodeExpression expression, bool isWritten)
        {
            RuleExpressionInfo result = RuleExpressionWalker.Validate(validation, expression, false);

            return(result);
        }