public override void Start(MonitorAction monitorAction) { Logger.Info("ENABLING sound alarm: " + ListFiles(monitorAction.SoundFiles)); FileInfo file = GetRandomSoundFile(monitorAction.SoundFiles); using (var player = new SoundPlayer(file.FullName)) { player.Play(); } }
public override void Start(MonitorAction monitorAction) { Logger.Info("ENABLING light alarm"); lock (StatusLockingObj) { if (!_isRunning) { DateTime stopTime = DateTime.Now + new TimeSpan(0, 0, monitorAction.LightAlarmDurationInSeconds); _alarmThread = new Thread(() => StopAlarmAtGivenTime(stopTime)); _alarmThread.Start(); _isRunning = true; Exec("on"); } } }
private bool PerformMonitorAction(MonitorAction action) { bool passed = true; string wrongnessMessage = ""; try { bool result = action.GetStatus(); if (!result) { wrongnessMessage = string.Format("Somethings Wrong! {0} IS FAILING\n" + "Found problem when: {1}\n", action.Name, action.GetActionDetails()); passed = false; } } catch(WebException ex) { if(!action.FailAtNetworkException) { Logger.Debug("skipping WebException for " + action.Name); passed = true; } else { wrongnessMessage = string.Format("Something's Wrong! {0} IS FAILING\n" + "Found problem when: {1}\n" + "details: {2}", action.Name, action.GetActionDetails(), ex.Message); passed = false; } } catch (Exception ex) { wrongnessMessage = string.Format("Something's Wrong! {0} IS FAILING\n" + "Found problem when: {1}\n" + "details: {2}", action.Name, action.GetActionDetails(), ex.Message); passed = false; } if (!passed) { if (!action.MarkedAsFailing) //first fail { Logger.Info(action.Name + " started to fail"); action.MarkedAsFailing = true; Logger.Info(wrongnessMessage); StartAlerts(action); } Logger.Info(action.GetActionDetails() + " continue failing"); return false; } if(action.MarkedAsFailing) { Logger.Info(action.Name + " stopped failing"); action.MarkedAsFailing = false; } return true; }
public abstract void Start(MonitorAction monitorAction);
private void StartAlerts(MonitorAction monitorAction) { foreach(AlertAction action in _alertActions) { action.Start(monitorAction); } }