public TimerListener(object caller, ListenerDaysOfWeek weekDays, params DateTime[] triggerTime) : base(caller) { InitTimer(1); TimesToRun.AddRange(triggerTime); WeekDaysToRun = weekDays; }
private void SetWeekDays(string weekDays) { bool enabled = true; if (weekDays.StartsWith("NOT ", StringComparison.CurrentCultureIgnoreCase)) { enabled = false; weekDays = weekDays.Remove(0, 4); } SetWeekDays(!enabled); ListenerDaysOfWeek currentDayOfWeek = ListenerDaysOfWeek.Nodays; MatchCollection matches = Regex.Matches(weekDays, "(?<WeekDay>\\w+)"); foreach (Match match in matches) { string weekDay = match.Groups["WeekDay"].Value; if (new char[] { 'M', 'W', 'F', 'm', 'w', 'f' }.Contains(weekDay[0])) { switch (weekDay[0]) { case 'm': case 'M': currentDayOfWeek = ListenerDaysOfWeek.Monday; break; case 'W': case 'w': currentDayOfWeek = ListenerDaysOfWeek.Wednesday; break; case 'F': case 'f': currentDayOfWeek = ListenerDaysOfWeek.Friday; break; } } if (weekDay.Length > 1) { if (new string[] { "TU", "TH", "SU", "SA" }.Contains(weekDay.Substring(0, 2).ToUpper())) { switch (weekDay.Substring(0, 2).ToUpper()) { case "TU": currentDayOfWeek = ListenerDaysOfWeek.Tuesday; break; case "TH": currentDayOfWeek = ListenerDaysOfWeek.Thursday; break; case "SU": currentDayOfWeek = ListenerDaysOfWeek.Sunday; break; case "SA": currentDayOfWeek = ListenerDaysOfWeek.Saturday; break; } } } if (enabled) { WeekDaysToRun |= currentDayOfWeek; } else { WeekDaysToRun &= ~currentDayOfWeek; } } }
public TimerListener(object caller, ListenerDaysOfWeek weekDays, int intSeconds, DateTime?startTime = null, DateTime?endTime = null) : base(caller) { InitTimer(intSeconds, startTime, endTime); WeekDaysToRun = weekDays; }
private void SetWeekDays(bool enabled) { WeekDaysToRun = enabled ? ListenerDaysOfWeek.Daily : ListenerDaysOfWeek.Nodays; }