Example #1
0
        public static ActionOverrideEvent SubscribeForOverride(
            string action,
            ActionOverrideEvent replacement,
            bool executeOverrideLast)
        {
            Validate.StringNeitherNullNorEmpty(parameter: action, parameterName: nameof(action));
            lock (_lock) {
                ActionSet actionSet;
                var       flag = _registeredEvents.TryGetValue(key: action, value: out actionSet);
                if (!flag)
                {
                    if (replacement == null)
                    {
                        return(null);
                    }
                    actionSet = new ActionSet();
                }

                var actionOverrideEvent = actionSet.Override;
                actionSet.Override         = replacement;
                actionSet.RunOverrideAtEnd = executeOverrideLast;
                if (actionSet.Actions == null && actionSet.Override == null)
                {
                    RemoveAction(action: action);
                }
                else if (!flag)
                {
                    _activeAction = true;
                    _registeredEvents.Add(key: action, value: actionSet);
                }

                return(actionOverrideEvent);
            }
        }
Example #2
0
 public ActionSet(ActionEvent actions, ActionOverrideEvent overrideDelegate, bool addtoEnd)
 {
     this.Actions          = actions;
     this.Override         = overrideDelegate;
     this.RunOverrideAtEnd = addtoEnd;
 }
Example #3
0
 public static ActionOverrideEvent SubscribeForOverride(
     string action,
     ActionOverrideEvent replacement)
 {
     return(SubscribeForOverride(action: action, replacement: replacement, executeOverrideLast: true));
 }