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); } }
public ActionSet(ActionEvent actions, ActionOverrideEvent overrideDelegate, bool addtoEnd) { this.Actions = actions; this.Override = overrideDelegate; this.RunOverrideAtEnd = addtoEnd; }
public static ActionOverrideEvent SubscribeForOverride( string action, ActionOverrideEvent replacement) { return(SubscribeForOverride(action: action, replacement: replacement, executeOverrideLast: true)); }