示例#1
0
 public void Add(IRuleBase rule)
 {
     if(rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     Rules.Add(rule);
 }
示例#2
0
 public void Add(IRuleBase rule)
 {
     if (rule == null)
     {
         throw new ArgumentNullException("rule");
     }
     Rules.Add(rule);
 }
示例#3
0
        public static void DescribeRule(this IRuleBase rule, ITextRender output)
        {
            output.open("p", "Rule: " + rule.name, rule.description);
            output.AppendPair("Class", rule.GetType().Name, true, ": ");
            output.AppendPair("Role", rule.role, true, ": ");
            output.AppendPair("Subject", rule.subject, true, ": ");
            output.AppendPair("Priority", rule.priority, true, ": ");
            output.AppendPair("Mode", rule.mode, true, ": ");
            output.AppendPair("Tag", rule.tagName, true, ": ");

            output.close();
        }
        public override void AddRule(IRuleBase rule)
        {
            if (rule is IRuleActiveBase)
            {
                rankingTargetActiveRules.Add(rule as IRuleActiveBase);
            }
            else
            {
                rankingTargetPassiveRules.Add(rule as IRuleForTarget);
            }

            rules.Add(rule);
            rule.tagName = rule.GetType().Name + "_" + rules.Count().ToString("D2");
        }
 public spiderEvalRuleResult this[IRuleBase rule]
 {
     get
     {
         string rKey = rule.tagName;
         if (passive.ContainsKey(rKey))
         {
             return(passive[rKey]);
         }
         if (active.ContainsKey(rKey))
         {
             return(active[rKey]);
         }
         return(null);
     }
 }
示例#6
0
        /// <inheritdoc />
        public Task <ValidationResult> ValidateAsync <T>(IRuleBase <T> rule, T instance, ValidationContext context)
        {
            if (rule == null)
            {
                throw new ArgumentNullException(nameof(rule));
            }

            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            var ruleSet = new SimpleValidationRuleSet <T>(rule);

            return(ValidateInternal(ruleSet, instance, context));
        }
示例#7
0
        /// <inheritdoc />
        public IValidationChainMember <T> AddMemberToChain(IRuleBase <T> rule)
        {
            if (rule == null)
            {
                throw new ArgumentNullException(nameof(rule));
            }

            var member = _validationChain.FirstOrDefault(x => x.Identity == rule.Identity);

            if (member != null)
            {
                return(member);
            }

            member = new ValidationChainMember <T>(rule);
            AddMember(member);
            return(member);
        }
示例#8
0
        private void WhenInternal(IRuleBase <T> rule, Action action, Func <ValidationResult, bool> condition)
        {
            var member = AddMemberToChain(rule);
            var list   = new List <IValidationChainMember <T> >();

            using (_validationChain.OnItemAdded((r, e) => list.Add(e.Value)))
            {
                action();
            }
            list.ForEach(x =>
            {
                if (condition == null)
                {
                    x.DependsOn(member);
                }
                else
                {
                    x.DependsOn(member, condition);
                }
            });
        }
示例#9
0
        public void WhenValidateWithRegisteredRuleCollectionThanShouldBeTrue()
        {
            //ARRANGE
            var rules = new IRuleBase <Entity>[]
            {
                new Rule <Entity>(x => x.StringProperty != "some value"),
                new Rule <Entity>(x => x.IntProperty < 1),
                new RequiredStringRule <Entity>(x => x.StringProperty)
            };
            var validator = new ValidatorBase <Entity>();
            var e         = new Entity {
                StringProperty = "some prop"
            };

            validator.RegisterRules(rules);

            //ACT
            var condition = validator.Validate(e);

            //ASSERT
            Assert.IsTrue(condition);
        }
示例#10
0
        public override void AddRule(IRuleBase rule)
        {
            if (rule is layerDistributionActiveRuleBase)
            {
                layerDistributionActiveRuleBase rule_layerDistributionActiveRuleBase = (layerDistributionActiveRuleBase)rule;
                layerActiveRules.Add(rule_layerDistributionActiveRuleBase);
            }
            else if (rule is layerDistributionPassiveRuleBase)
            {
                layerPassiveRules.Add(rule as layerDistributionPassiveRuleBase);
            }
            else if (rule is IRuleActiveBase)
            {
                rankingTargetActiveRules.Add(rule as IRuleActiveBase);
            }
            else
            {
                rankingTargetPassiveRules.Add(rule as IRuleForTarget);
            }

            rules.Add(rule);
            rule.tagName = rule.GetType().Name + "_" + rules.Count().ToString("D2");
        }
 public SimpleValidationRuleSet(IRuleBase <T> rule)
 {
     SetRule(rule);
 }
示例#12
0
 public abstract void AddRule(IRuleBase rule);
示例#13
0
        protected IValidationChainMemberBuilder <T> SetRule(IRuleBase <T> rule)
        {
            var member = AddMemberToChain(rule);

            return(new ValidationChainMemberBuilder <T>(this, member));
        }
示例#14
0
 public spiderLayerDistributionResult(IRuleBase __rule) : base(__rule, __rule.mode)
 {
 }
示例#15
0
 public spiderEvalRuleResult(IRuleBase __rule, spiderEvalRuleResultEnum mode)
 {
     rule = __rule;
     mode = mode;
     role = __rule.role;
 }
示例#16
0
 public spiderEvalRuleResult(IRuleBase __rule)
 {
     rule = __rule;
     mode = __rule.mode;
     role = __rule.role;
 }
示例#17
0
 public IValidationChainMemberBuilder <T> DependsOn(IRuleBase <T> rule)
 {
     _member.DependsOn(_ruleSet.AddMemberToChain(rule));
     return(this);
 }
示例#18
0
 protected void When(IRuleBase <T> rule, Action action)
 {
     WhenInternal(rule, action, null);
 }
示例#19
0
 protected void WhenNoInfosAndWarnings(IRuleBase <T> rule, Action action)
 {
     WhenInternal(rule, action, r => !r.Results.Any(x => x.Messages.Any(m => m is WarningRuleMessage || m is InfoRuleMessage)));
 }
 public ValidationChainMember(IRuleBase <T> rule)
 {
     _rule = rule ?? throw new ArgumentNullException(nameof(rule));
 }