public void TestStringStartEndTimes() { DailyCalendar dailyCalendar = new DailyCalendar("1:20", "14:50"); Assert.IsTrue(dailyCalendar.ToString().IndexOf("01:20:00:000 - 14:50:00:000") > 0); dailyCalendar = new DailyCalendar("1:20:1:456", "14:50:15:2"); Assert.IsTrue(dailyCalendar.ToString().IndexOf("01:20:01:456 - 14:50:15:002") > 0); }
public void TestStringInvertTimeRange() { DailyCalendar dailyCalendar = new DailyCalendar("1:20", "14:50"); dailyCalendar.InvertTimeRange = true; Assert.IsTrue(dailyCalendar.ToString().IndexOf("inverted: True") > 0); dailyCalendar.InvertTimeRange = false; Assert.IsTrue(dailyCalendar.ToString().IndexOf("inverted: False") > 0); }
public void Run() { ILog log = LogManager.GetLogger(typeof(XmlConfigurationExample)); log.Info("------- Initializing ----------------------"); // First we must get a reference to a scheduler NameValueCollection properties = new NameValueCollection(); properties["quartz.scheduler.instanceName"] = "XmlConfiguredInstance"; // set thread pool info properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz"; properties["quartz.threadPool.threadCount"] = "5"; properties["quartz.threadPool.threadPriority"] = "Normal"; // job initialization plugin handles our xml reading, without it defaults are used properties["quartz.plugin.xml.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz"; properties["quartz.plugin.xml.fileNames"] = "~/quartz_jobs.xml"; ISchedulerFactory sf = new StdSchedulerFactory(properties); IScheduler sched = sf.GetScheduler(); // we need to add calendars manually, lets create a silly sample calendar var dailyCalendar = new DailyCalendar("00:01", "23:59"); dailyCalendar.InvertTimeRange = true; sched.AddCalendar("cal1", dailyCalendar, false, false); log.Info("------- Initialization Complete -----------"); // all jobs and triggers are now in scheduler // Start up the scheduler (nothing can actually run until the // scheduler has been started) sched.Start(); log.Info("------- Started Scheduler -----------------"); // wait long enough so that the scheduler as an opportunity to // fire the triggers log.Info("------- Waiting 30 seconds... -------------"); try { Thread.Sleep(30*1000); } catch (ThreadInterruptedException) { } // shut down the scheduler log.Info("------- Shutting Down ---------------------"); sched.Shutdown(true); log.Info("------- Shutdown Complete -----------------"); }
public void TestTimeZone() { TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DailyCalendar dailyCalendar = new DailyCalendar("12:00:00", "14:00:00"); dailyCalendar.InvertTimeRange = true; //inclusive calendar dailyCalendar.TimeZone = tz; // 11/2/2012 17:00 (utc) is 11/2/2012 13:00 (est) DateTimeOffset timeToCheck = new DateTimeOffset(2012, 11, 2, 17, 0, 0, TimeSpan.FromHours(0)); Assert.IsTrue(dailyCalendar.IsTimeIncluded(timeToCheck)); }
public void TestStartEndTimes() { // Grafit found a copy-paste problem from ending time, it was the same as starting time DateTime d = DateTime.Now; DailyCalendar dailyCalendar = new DailyCalendar("1:20", "14:50"); DateTime expectedStartTime = new DateTime(d.Year, d.Month, d.Day, 1, 20, 0); DateTime expectedEndTime = new DateTime(d.Year, d.Month, d.Day, 14, 50, 0); Assert.AreEqual(expectedStartTime, dailyCalendar.GetTimeRangeStartingTimeUtc(d).DateTime); Assert.AreEqual(expectedEndTime, dailyCalendar.GetTimeRangeEndingTimeUtc(d).DateTime); }
public bool Equals(DailyCalendar obj) { if (obj == null) return false; bool baseEqual = GetBaseCalendar() != null ? GetBaseCalendar().Equals(obj.GetBaseCalendar()) : true; return baseEqual && (InvertTimeRange == obj.InvertTimeRange) && (rangeStartingHourOfDay == obj.rangeStartingHourOfDay) && (rangeStartingMinute == obj.rangeStartingMinute) && (rangeStartingSecond == obj.rangeStartingSecond) && (rangeStartingMillis == obj.rangeStartingMillis) && (rangeEndingHourOfDay == obj.rangeEndingHourOfDay) && (rangeEndingMinute == obj.rangeEndingMinute) && (rangeEndingSecond == obj.rangeEndingSecond) && (rangeEndingMillis == obj.rangeEndingMillis); }
public override ICalendar Clone() { var clone = new DailyCalendar(CalendarBase, RangeStartingTime, RangeEndingTime); CloneFields(clone); return clone; }
public void TestGetFireTimeAfter_WithCalendar() { DailyCalendar dailyCalendar = new DailyCalendar("1:20", "14:50"); SimpleTriggerImpl simpleTrigger = new SimpleTriggerImpl(); simpleTrigger.RepeatInterval = TimeSpan.FromMilliseconds(10); simpleTrigger.RepeatCount = 1; DateTimeOffset neverFireTime = DateBuilder.EvenMinuteDateBefore(dailyCalendar.GetTimeRangeStartingTimeUtc(DateTime.Now)); simpleTrigger.StartTimeUtc = neverFireTime; simpleTrigger.ComputeFirstFireTimeUtc(dailyCalendar); DateTimeOffset? fireTimeAfter = simpleTrigger.GetNextFireTimeUtc(); Assert.IsNull(fireTimeAfter); }
static void InitializeDaily(DailyCalendar dailyCalendar, IDailyCalendar calendar) { dailyCalendar.TimeZone = TimeZoneInfo.FindSystemTimeZoneById(Persistent.Base.General.RegistryTimeZoneProvider.GetRegistryKeyNameByTimeZoneId(calendar.TimeZone)); calendar.DateRanges.ToList().ForEach(range => dailyCalendar.SetTimeRange(range.StartPoint, range.EndPoint)); }
public override object Clone() { DailyCalendar clone = (DailyCalendar)base.Clone(); return(clone); }
/// <summary> /// Get the object to serialize when generating serialized file for future /// tests, and against which to validate deserialized object. /// </summary> /// <returns></returns> protected override object GetTargetObject() { DailyCalendar c = new DailyCalendar("01:20:01:456", "14:50:15:002"); c.Description = "description"; c.InvertTimeRange = true; return c; }
/// <summary> /// Creates the simple calendar and adds it to the scheduler. /// </summary> /// <param name="calName">The calendar name.</param> private void CreateCalendar(string calName) { var dailyCalendar = new DailyCalendar("00:01", "23:59"); dailyCalendar.InvertTimeRange = true; if (!scheduler.GetCalendarNames().Contains(calName)) { scheduler.AddCalendar(calName, dailyCalendar, false, false); } }
private ICalendar parseDailyCalendar(XElement calendarXml) { DailyCalendar calendar = new DailyCalendar(parseRangeStartingTime(calendarXml), parseRangeEndingTime(calendarXml)); return calendar; }
public DailyCalendarDto(DailyCalendar calendar) : base(calendar) { InvertTimeRange = calendar.InvertTimeRange; TimeZone = new TimeZoneDto(calendar.TimeZone); }
/// <summary> /// Builds a <see cref="DailyCalendar"/> on the given allowed hours to run. /// </summary> /// <param name="fromTime">From time.</param> /// <param name="toTime">To time.</param> /// <returns></returns> private DailyCalendar BuildCalendarOnTimeRange(ICalendar baseCalendar, string fromTime, string toTime) { DateTime? dFromTime = GrammarHelper.GetTimeFromTimeString(fromTime); DateTime? dToTime = GrammarHelper.GetTimeFromTimeString(toTime); DateTime fromUtc = dFromTime.Value.ToUniversalTime(); DateTime toUtc = dToTime.Value.ToUniversalTime(); //adjust the utc month,day,year to match each other toUtc = new DateTime(fromUtc.Year, fromUtc.Month, fromUtc.Day, toUtc.Hour, toUtc.Minute, toUtc.Second, toUtc.Millisecond); DailyCalendar calendar = null; //if the to time is lower than from if (toUtc < fromUtc) { //switch the variables if (baseCalendar != null) calendar = new DailyCalendar(baseCalendar, toUtc, fromUtc); else calendar = new DailyCalendar(toUtc, fromUtc); } else { //check to see if they are the same //TODO: do something about this hacking the extra second if (fromUtc.Equals(toUtc)) { toUtc = toUtc.AddSeconds(1); } if (baseCalendar != null) calendar = new DailyCalendar(baseCalendar, fromUtc, toUtc); else calendar = new DailyCalendar(fromUtc, toUtc); calendar.InvertTimeRange = true; //turn this into an inclusive range } return calendar; }