private void RaiseRunCollectorHostCorrectiveWarningScript() { if (CorrectiveScriptOnWarningMinimumRepeatTimeMin > 0 && DateTime.Now < LastWarningCorrectiveScriptRun.AddMinutes(CorrectiveScriptOnWarningMinimumRepeatTimeMin)) { RaiseCorrectiveScriptMinRepeatTimeBlockedEvent("Warning corrective script blocked from running. The specified minimum number of seconds have not passed since the last time the script ran!"); } else if (RunCollectorHostCorrectiveWarningScript != null) { RunCollectorHostCorrectiveWarningScript(this); LastWarningCorrectiveScriptRun = DateTime.Now; TimesWarningCorrectiveScriptRan++; } }
private List <string> RunWarningCorrectiveScripts(bool stateChanged = false) { List <string> scriptsRan = new List <string>(); if (!stateChanged && CorrectiveScriptOnWarningMinimumRepeatTimeMin == 0) { CorrectiveScriptMinRepeatTimeBlockedEvent?.Invoke(this, "Warning corrective script(s) blocked from running. It will only run if the state has changed!"); } else if (CorrectiveScriptOnWarningMinimumRepeatTimeMin > 0 && DateTime.Now < LastWarningCorrectiveScriptRun.AddMinutes(CorrectiveScriptOnWarningMinimumRepeatTimeMin)) { CorrectiveScriptMinRepeatTimeBlockedEvent?.Invoke(this, "Warning corrective script(s) blocked from running. The specified minimum number of seconds have not passed since the last time the script ran!"); } else { foreach (var warningScript in (from s in ActionScripts where s.IsWarningCorrectiveScript select s)) { try { //if (warningScript.RunTimeLinkedActionScript != null) //{ warningScript.Run(false); WarningCorrectiveScriptExecuted?.Invoke(this, warningScript.Name); LastWarningCorrectiveScriptRun = DateTime.Now; scriptsRan.Add(warningScript.Name); //} //else // ErrorCorrectiveScriptFailed?.Invoke(this, "No linked action script found!", warningScript.MPId); } catch (Exception ex) { WarningCorrectiveScriptFailed?.Invoke(this, warningScript.Name, ex.Message); } } if (scriptsRan.Count > 0) { TimesWarningCorrectiveScriptRan++; } } return(scriptsRan); }