public IStateBuilder AddEventHandler(string elementName, string elementType, StateTriggerKinds triggerKind, TriggerStates triggerState, Func <Task> methodToUse) { // ToDo: null or empty checks Logger.LogDebug($"<AddEventHandler, elementName = {elementName}, elementType = {elementType}, sTK = {triggerKind}, tS = {triggerState}, methodToUse = {methodToUse}"); StateChangeEventHandlers.Add(new StateChangeEventHandler() { ElementName = elementName, ElementType = elementType, TriggerKind = triggerKind, TriggerState = triggerState, MethodToUse = methodToUse }); Logger.LogDebug($"AddEventHandler>"); return(this); }
public Func <Task> FromStateHandlers(string elementName, string elementType, StateTriggerKinds sTK, TriggerStates tS) { //ToDo: null checks try { return(StateChangeEventHandlers .Where(triggerHandler => triggerHandler.ElementName == elementName && triggerHandler.ElementType == elementType && triggerHandler.TriggerKind == sTK && triggerHandler.TriggerState == tS) .Single() .MethodToUse); } catch { Logger.LogError(StringConstants.InvalidFromStateHandlersExceptionMessage, elementName, elementType, sTK, tS); throw new Exception(); // ToDo: create a new exception and use it here } }