internal Ruleset(RuleEngineContext.RuleEngineContext context, IEnumerable <IPropertyRule <TEntity> > rules, EntryCriteriaRule <TEntity> entryPoint, RuleExecutionRuleEnum ruleExecutionRule, string name, string description) { this._context = context; this._entryPoint = entryPoint; this._ruleExecutionRule = ruleExecutionRule; Name = name; Description = description; _rules.AddRange(rules); }
internal static IRuleExecutor CreateRuleExecutor(RuleExecutionRuleEnum ruleExecutionRule) { switch (ruleExecutionRule) { case RuleExecutionRuleEnum.FirstMatch: return(new FirstRuleExecutor()); case RuleExecutionRuleEnum.LastMatch: return(new LastRuleExecutor()); default: throw new ArgumentOutOfRangeException(nameof(ruleExecutionRule), ruleExecutionRule, null); } }
internal GroupRuleSet(IEnumerable <IRuleSet <TEntity> > ruleSets, EntryCriteriaRule <TEntity> entryPoint, RuleExecutionRuleEnum ruleExecutionRule, IEnumerable <AggregatePropertyMetadata> aggregateProps, string filterExpression, string groupExpression, string name, string description) { this.entryPoint = entryPoint; this.ruleExecutionRule = ruleExecutionRule; Name = name; Description = description; GroupExpression = groupExpression; _aggregateProps = aggregateProps; _ruleSets = ruleSets; _executedRuleSet = new List <IRuleSet <TEntity> >(); }
public GroupChildRuleSetBuilder <TEntity, TKey> WithJobExecutionRule(RuleExecutionRuleEnum rulesExecutionRule) { _ruleSetBuilder.WithJobExecutionRule(rulesExecutionRule); return(this); }
public RulesetBuilder <TEntity> WithJobExecutionRule(RuleExecutionRuleEnum rulesExecutionRule) { this._rulesExecutionRule = rulesExecutionRule; return(this); }