Ejemplo n.º 1
0
 private static void ValidateStateRule(T candidate, IStateRule <T> rule)
 {
     if (rule == null)
     {
         return;
     }
     if (!rule.IsSatisfied(candidate))
     {
         throw new StateRuleException(rule.Description);
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public bool Satisfies(IStateRule <T> stateRule)
 {
     return(HasValue && stateRule.IsSatisfied(Value));
 }
Ejemplo n.º 4
0
 internal NotStateRule(IStateRule <T> rule)
 {
     _rule = rule;
 }
Ejemplo n.º 5
0
 protected Workflow(IStateRule <T> preStateRule)
 {
     _preStateRule = preStateRule;
 }
Ejemplo n.º 6
0
 public static IStateRule <T> Describe <T>(this IStateRule <T> rule, string description)
 {
     rule.Description = description;
     return(rule);
 }
Ejemplo n.º 7
0
 internal OrStateRule(IStateRule <T> ruleA, IStateRule <T> ruleB)
 {
     _ruleA = ruleA;
     _ruleB = ruleB;
 }
Ejemplo n.º 8
0
 public static IStateRule <T> Or <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB)
 {
     return(new OrStateRule <T>(ruleA, ruleB));
 }
Ejemplo n.º 9
0
 public static IStateRule <T> Not <T>(this IStateRule <T> rule)
 {
     return(new NotStateRule <T>(rule));
 }
Ejemplo n.º 10
0
 public GuidCountDuplicateWorkflow(IStateRule <GuidCount> preRule) : base(preRule)
 {
 }
Ejemplo n.º 11
0
 public static IStateRule <T> And <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB)
 {
     return(new AndStateRule <T>(ruleA, ruleB));
 }
Ejemplo n.º 12
0
 public GuidCountIncrementWorkflow(IStateRule <GuidCount> preRule) : base(preRule)
 {
 }
Ejemplo n.º 13
0
 public CounterIncrementWorkflow(IStateRule <CounterModel> preRule) : base(preRule)
 {
 }
Ejemplo n.º 14
0
 public EventRulePair(string eventName, IStateRule stateRule)
 {
     EventName = eventName;
     StateRule = stateRule;
 }
Ejemplo n.º 15
0
 public static IStateRule <T> Not <T>(this IStateRule <T> rule) where T : IModel <T>
 {
     return(new NotStateRule <T>(rule));
 }
Ejemplo n.º 16
0
 public static IStateRule <T> Or <T>(this IStateRule <T> ruleA, IStateRule <T> ruleB) where T : IModel <T>
 {
     return(new OrStateRule <T>(ruleA, ruleB));
 }