Beispiel #1
0
        public Rule(RuleTrigger trigger, RuleAction action)
        {
            Guard.NotNull(trigger);
            Guard.NotNull(action);

            SetTrigger(trigger);
            SetAction(action);
        }
Beispiel #2
0
        public Rule(RuleTrigger trigger, RuleAction action)
        {
            Guard.NotNull(trigger, nameof(trigger));
            Guard.NotNull(action, nameof(action));

            this.trigger = trigger;
            this.action  = action;
        }
Beispiel #3
0
        public Rule(RuleTrigger trigger, RuleAction action)
        {
            Guard.NotNull(trigger);
            Guard.NotNull(action);

            Action = action;

            Trigger = trigger;
        }
Beispiel #4
0
        public Rule(RuleTrigger trigger, RuleAction action)
        {
            Guard.NotNull(trigger);
            Guard.NotNull(action);

            this.trigger = trigger;
            this.trigger.Freeze();

            this.action = action;
            this.action.Freeze();
        }
Beispiel #5
0
        public void Update(RuleAction newAction)
        {
            Guard.NotNull(newAction, nameof(newAction));

            if (newAction.GetType() != action.GetType())
            {
                throw new ArgumentException("New action has another type.", nameof(newAction));
            }

            action = newAction;
        }
Beispiel #6
0
        public Rule Update(RuleAction newAction)
        {
            Guard.NotNull(newAction, nameof(newAction));

            if (newAction.GetType() != action.GetType())
            {
                throw new ArgumentException("New action has another type.", nameof(newAction));
            }

            return(Clone(clone =>
            {
                clone.action = newAction;
            }));
        }
Beispiel #7
0
        public Rule Update(RuleAction newAction)
        {
            Guard.NotNull(newAction);

            if (newAction.GetType() != action.GetType())
            {
                throw new ArgumentException("New action has another type.", nameof(newAction));
            }

            if (action.DeepEquals(newAction))
            {
                return(this);
            }

            return(Clone(clone =>
            {
                clone.SetAction(newAction);
            }));
        }
Beispiel #8
0
 private void SetAction(RuleAction newAction)
 {
     action = newAction;
     action.Freeze();
 }
Beispiel #9
0
 public bool DeepEquals(RuleAction action)
 {
     return(SimpleEquals.IsEquals(this, action));
 }
Beispiel #10
0
 public bool DeepEquals(RuleAction action)
 {
     return(this.WithDeepEqual(action).IgnoreProperty <Freezable>(x => x.IsFrozen).Compare());
 }