private void ExecuteTask(ScheduleTask task) { task.CalculateNextRunTime(); if (mServer != null) { mServer.RaiseServerMessage(string.Format("Running scheduled task '{0}'. Next run will be {1}.", task.Name, task.NextRun)); mServer.Execute(task.Command); } }
public void TestNextRun() { ScheduleTask task = new ScheduleTask("Monday", 5, 30); task.CalculateNextRunTime(mondayMorning); Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Monday)); Assert.That(task.NextRun.Hour, Is.EqualTo(5)); Assert.That(task.NextRun.Minute, Is.EqualTo(30)); }
public void TestAlternateDays() { ScheduleTask task = new ScheduleTask("Tuesday,Thursday,Saturday", 5, 30); task.CalculateNextRunTime(mondayMorning); Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Tuesday)); Assert.That(task.NextRun.Hour, Is.EqualTo(5)); Assert.That(task.NextRun.Minute, Is.EqualTo(30)); task.CalculateNextRunTime(task.NextRun); Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Thursday)); Assert.That(task.NextRun.Hour, Is.EqualTo(5)); Assert.That(task.NextRun.Minute, Is.EqualTo(30)); task.CalculateNextRunTime(task.NextRun); Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Saturday)); Assert.That(task.NextRun.Hour, Is.EqualTo(5)); Assert.That(task.NextRun.Minute, Is.EqualTo(30)); }
public void TestEveryHour() { ScheduleTask task = new ScheduleTask("*", "*", 0); task.CalculateNextRunTime(mondayMorning); for (int i = 5; i < 24; i++) { Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Monday)); Assert.That(task.NextRun.Hour, Is.EqualTo(i)); Assert.That(task.NextRun.Minute, Is.EqualTo(0)); task.CalculateNextRunTime(task.NextRun); } for (int i = 0; i < 24; i++) { Assert.That(task.NextRun.DayOfWeek, Is.EqualTo(DayOfWeek.Tuesday)); Assert.That(task.NextRun.Hour, Is.EqualTo(i)); Assert.That(task.NextRun.Minute, Is.EqualTo(0)); task.CalculateNextRunTime(task.NextRun); } }
/// <summary> /// Adds the specified <see cref="IScheduleTask"/> to the task list. /// </summary> /// <param name="task">The task to add.</param> public void AddTask(ScheduleTask task) { task.CalculateNextRunTime(); mTasks.Add(task); }