protected void SetUpRule <T>() where T : BaseRule, new()
        {
            var metadata = new RuleMetadata(typeof(T));

            _ruleMap[typeof(T)]           = metadata;
            _firedRulesMap[metadata.Name] = new List <AgendaEventArgs>();
            Repository.Load(x => x.From(typeof(T)));
        }
        public ReviewRule EvaluateRule <Model, Context>(
            RuleMetadata metadata, Model model, Context context)
        {
            var rule = typeResolver.Resolve <IRule <Model, Context> >(metadata.RuleType);

            return(new ReviewRule()
            {
                BusinessId = metadata.BusinessId,
                Message = rule.Message,
                IsSatisfied = rule.IsSatisfiedBy(model, context)
            });
        }
Example #3
0
        private IRuleDefinition BuildDefinition()
        {
            var metadata = new RuleMetadata(GetType());

            _builder.Name(metadata.Name);
            _builder.Description(metadata.Description);
            _builder.Tags(metadata.Tags);

            Define();

            return(_builder.Build());
        }
        public async Task <ReviewRule> EvaluateRuleAsync <Model, Context>(
            RuleMetadata metadata, Model model, Context context)
        {
            var rule   = typeResolver.Resolve <IRuleAsync <Model, Context> >(metadata.RuleType);
            var result = await rule.IsSatisfiedBy(model, context);

            return(new ReviewRule
            {
                BusinessId = metadata.BusinessId,
                Message = rule.Message,
                IsSatisfied = result
            });
        }
Example #5
0
        public DummyCFamilyRulesConfig AddRule(string partialRuleKey, IssueSeverity issueSeverity, bool isActive, Dictionary <string, string> parameters)
        {
            ruleKeyToActiveMap[partialRuleKey] = isActive;
            RulesMetadata[partialRuleKey]      = new RuleMetadata {
                DefaultSeverity = issueSeverity
            };

            if (parameters != null)
            {
                RulesParameters[partialRuleKey] = parameters;
            }
            return(this);
        }
Example #6
0
        private IRuleDefinition BuildDefinition()
        {
            var metadata = new RuleMetadata(GetType());

            _builder.Name(metadata.Name);
            _builder.Description(metadata.Description);
            _builder.Tags(metadata.Tags);

            if (metadata.Priority.HasValue)
            {
                _builder.Priority(metadata.Priority.Value);
            }
            if (metadata.Repeatability.HasValue)
            {
                _builder.Repeatability(metadata.Repeatability.Value);
            }

            Define();

            return(_builder.Build());
        }
Example #7
0
 public CompiledRule(RuleEngine engine, RuleMetadata metadata)
 {
     this.engine   = engine;
     this.metadata = metadata;
 }
Example #8
0
 public DummyCFamilyRulesConfig AddRule(string partialRuleKey, bool isActive)
 {
     ruleKeyToActiveMap[partialRuleKey] = isActive;
     RulesMetadata[partialRuleKey]      = new RuleMetadata();
     return(this);
 }
Example #9
0
 public CompiledRule(RuleEngine engine, RuleMetadata metadata)
 {
     this.engine = engine;
     this.metadata = metadata;
 }
Example #10
0
        private IRuleDefinition BuildDefinition()
        {
            var metadata = new RuleMetadata(GetType());
            _builder.Name(metadata.Name);
            _builder.Description(metadata.Description);
            _builder.Tags(metadata.Tags);

            if (metadata.Priority.HasValue)
            {
                _builder.Priority(metadata.Priority.Value);
            }
            if (metadata.Repeatability.HasValue)
            {
                _builder.Repeatability(metadata.Repeatability.Value);
            }

            Define();

            return _builder.Build();
        }