Example #1
0
 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);
        }