/// <summary> /// Raises the <see cref="TaskStarted" /> event. /// </summary> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected virtual void OnTaskStarted(ScheduledTaskEventArgs e) { EventHandler <ScheduledTaskEventArgs> handler; handler = this.TaskStarted; if (handler != null) { handler(this, e); } }
private void OnScheduledTaskAdded(object sender, ScheduledTaskEventArgs e) { IScheduledTask scheduledTask = this.repository.ScheduledTasks.GetById(e.ScheduledTaskId); if (scheduledTask == null) { return; } this.AddScheduledTask(scheduledTask); }
public void NotifyAdd() { this.Repository.RaiseEvents = true; FakeSerializableScheduledTask scheduledTask = new FakeSerializableScheduledTask() { Id = Guid.NewGuid(), Schedule = new OneTimeScheduleDefinition(DateTime.UtcNow) }; ScheduledTaskEventArgs args = Helpers.WaitForEvent <ScheduledTaskEventArgs>(this.Timeout, handler => this.Repository.Added += handler, () => this.Repository.Add(scheduledTask)); Assert.AreEqual(scheduledTask.Id, args.ScheduledTaskId); }
private void OnScheduledTimeReached(object sender, ScheduledTaskEventArgs e) { if (Alarms.Count <= 0) { return; } foreach (Alarm alarm in Alarms) { if (alarm.AlarmGuid == e.Guid) { Logger.Log($"ALARM >>> {alarm.AlarmMessage}"); if (alarm.ShouldUseTTS) { Task.Run(async() => await TTSService.SpeakText($"Sir, {alarm.AlarmMessage}", true).ConfigureAwait(false)); } Helpers.InBackgroundThread(async() => await PlayAlarmSound(alarm.AlarmGuid).ConfigureAwait(false)); alarm.IsCompleted = true; if (!alarm.ShouldRepeat) { foreach (SchedulerConfig task in Core.Scheduler.Configs) { if (task.Guid == e.Guid) { if (task.SchedulerTimer != null) { task.SchedulerTimer.Dispose(); } } } } return; } } }
private void OnScheduledTaskUpdated(object sender, ScheduledTaskEventArgs e) { IScheduledTask scheduledTask = this.repository.ScheduledTasks.GetById(e.ScheduledTaskId); if (scheduledTask == null) { this.RemoveScheduledTask(e.ScheduledTaskId); return; } if (this.scheduledTasks.ContainsKey(e.ScheduledTaskId)) { if (!this.CalculateNextExecutionTime(scheduledTask)) { this.RemoveScheduledTask(scheduledTask.Id); } } else { this.AddScheduledTask(scheduledTask); } }
private void OnScheduledTaskDeleted(object sender, ScheduledTaskEventArgs e) { this.RemoveScheduledTask(e.ScheduledTaskId); }
private void OnScheduledTimeReached(object sender, ScheduledTaskEventArgs e) { if (Alarms.Count <= 0) { return; } if (sender == null || e == null) { return; } AlarmConfig?configToRemove = new AlarmConfig(); foreach (KeyValuePair <AlarmConfig, SchedulerConfig> alarmConfig in Alarms) { if (alarmConfig.Key == null || alarmConfig.Value == null) { continue; } if (alarmConfig.Value.Guid != null && alarmConfig.Value.Guid.Equals(e.Guid)) { Logger.Log($"ALARM >>> {alarmConfig.Key.AlarmMessage}"); if (alarmConfig.Key.ShouldUseTTS) { Task.Run(async() => await TTS.SpeakText($"Sir, {alarmConfig.Key.AlarmMessage}", true).ConfigureAwait(false)); } if (alarmConfig.Key.AlarmGuid != null) { Helpers.InBackgroundThread(async() => await PlayAlarmSound(alarmConfig.Key.AlarmGuid).ConfigureAwait(false)); } if (alarmConfig.Key.ShouldRepeat && !alarmConfig.Key.Snooze) { alarmConfig.Key.Scheduler = null; alarmConfig.Key.Scheduler = new Scheduler(); if (e.SchedulerConfig != null) { SchedulerConfig config = new SchedulerConfig() { Guid = e.Guid, ScheduledSpan = e.SchedulerConfig.RepeatInterval, RepeatInterval = e.SchedulerConfig.RepeatInterval }; config.SchedulerObjects.Add(alarmConfig.Key); alarmConfig.Key.Scheduler.SetScheduler(config); alarmConfig.Key.Scheduler.ScheduledTimeReached += OnScheduledTimeReached; Logger.Log($"Alarm will repeat exactly after {e.SchedulerConfig.RepeatInterval.Hours} from now."); } } else { configToRemove = alarmConfig.Key; } } } if (configToRemove != null) { Alarms.Remove(configToRemove); } }
private void SchedulerTaskStartedHandler(object sender, ScheduledTaskEventArgs e) { this.OnTaskStarted(e); }
private void JobManagerTaskStartedHandler(object sender, ScheduledTaskEventArgs e) { this.WriteLog("Task Started: {0}", e.Task.Name); this.SetIcon(); }