private static void ValidateStateRule(T candidate, IStateRule <T> rule) { if (rule == null) { return; } if (!rule.IsSatisfied(candidate)) { throw new StateRuleException(rule.Description); } }
public IStateRule <T> ApplyOperands <T>(IStateRule <T> stateRuleA, IStateRule <T> stateRuleB) { if (Operand == RuleOperand.Or) { stateRuleA = stateRuleA.Or(stateRuleB); } else { stateRuleA = stateRuleA.And(stateRuleB); } if (Negate) { stateRuleA = stateRuleA.Not(); } return(stateRuleA); }
public bool Satisfies(IStateRule <T> stateRule) { return(HasValue && stateRule.IsSatisfied(Value)); }
internal NotStateRule(IStateRule <T> rule) { _rule = rule; }
protected Workflow(IStateRule <T> preStateRule) { _preStateRule = preStateRule; }
public static IStateRule <T> Describe <T>(this IStateRule <T> rule, string description) { rule.Description = description; return(rule); }
internal OrStateRule(IStateRule <T> ruleA, IStateRule <T> ruleB) { _ruleA = ruleA; _ruleB = ruleB; }
public static IStateRule <T> Or <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB) { return(new OrStateRule <T>(ruleA, ruleB)); }
public static IStateRule <T> Not <T>(this IStateRule <T> rule) { return(new NotStateRule <T>(rule)); }
public GuidCountDuplicateWorkflow(IStateRule <GuidCount> preRule) : base(preRule) { }
public static IStateRule <T> And <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB) { return(new AndStateRule <T>(ruleA, ruleB)); }
public GuidCountIncrementWorkflow(IStateRule <GuidCount> preRule) : base(preRule) { }
public CounterIncrementWorkflow(IStateRule <CounterModel> preRule) : base(preRule) { }
public EventRulePair(string eventName, IStateRule stateRule) { EventName = eventName; StateRule = stateRule; }
public static IStateRule <T> Not <T>(this IStateRule <T> rule) where T : IModel <T> { return(new NotStateRule <T>(rule)); }
public static IStateRule <T> Or <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB) where T : IModel <T> { return(new OrStateRule <T>(ruleA, ruleB)); }