示例#1
0
 internal void UpdateConfig(Dictionary <string, Schedule> configSchedules)
 {
     // for each config schedule:
     //   copy from inherited config schedules
     //   create a new weekly schedule
     //   for each config schedule element:
     //     for each day in the config schedule element, add a new weekly schedule element
     schedules = new Dictionary <string, WeeklySchedule>();
     foreach (string name in configSchedules.Keys)
     {
         Schedule s;
         if (string.IsNullOrEmpty(configSchedules[name].Inherit))
         {
             s = configSchedules[name];
         }
         else
         {
             s = new Schedule(configSchedules[configSchedules[name].Inherit]);
             foreach (ScheduleElement e in configSchedules[name].Elements)
             {
                 s.AddElement(e);
             }
         }
         schedules[name] = new WeeklySchedule();
         foreach (ScheduleElement e in s.Elements)
         {
             schedules[name].Elements.AddRange(ConfigScheduleElementToWeeklyScheduleElement(e));
         }
         schedules[name].Elements.Sort();
     }
 }
示例#2
0
 internal WeeklySchedule(WeeklySchedule source)
 {
     Name     = source.Name;
     Elements = new List <WeeklyScheduleElement>();
     foreach (WeeklyScheduleElement e in source.Elements)
     {
         Elements.Add(new WeeklyScheduleElement(e));
     }
 }
示例#3
0
 internal void RunSchedule(string scheduleName)
 {
     if (!schedules.ContainsKey(scheduleName))
     {
         // error
         log.ErrorFormat("Couldn't find schedule {0}.", scheduleName);
         return;
     }
     log.Info(string.Format("Starting schedule '{0}'.", scheduleName));
     activeSchedule = schedules[scheduleName];
     TriggerEvent(SecondsUntilNextRun());
 }