Ejemplo n.º 1
0
        public static string GetScheduleDescription(this IDailyTimeIntervalTrigger trigger)
        {
            string result = GetScheduleDescription(trigger.RepeatInterval, trigger.RepeatIntervalUnit, trigger.RepeatCount);

            result += " from " + trigger.StartTimeOfDay.ToShortFormat() + " to " + trigger.EndTimeOfDay.ToShortFormat();

            if (trigger.DaysOfWeek.Count < 7)
            {
                var dow = DaysOfWeekViewModel.Create(trigger.DaysOfWeek);

                if (dow.AreOnlyWeekdaysEnabled)
                {
                    result += " only on Weekdays";
                }
                else if (dow.AreOnlyWeekendEnabled)
                {
                    result += " only on Weekends";
                }
                else
                {
                    result += " on " + string.Join(", ", trigger.DaysOfWeek);
                }
            }

            return(result);
        }
        public void TestSecondlyTriggerWithStartAndEndTime()
        {
            DateTimeOffset            startTime = DateBuilder.DateOf(0, 0, 0, 1, 1, 2011);
            DateTimeOffset            endTime   = DateBuilder.DateOf(0, 0, 0, 2, 1, 2011);
            IDailyTimeIntervalTrigger trigger   = (IDailyTimeIntervalTrigger)TriggerBuilder.Create()
                                                  .WithIdentity("test", "test")
                                                  .WithDailyTimeIntervalSchedule(x =>
                                                                                 x.WithIntervalInSeconds(121)
                                                                                 .StartingDailyAt(TimeOfDay.HourMinuteAndSecondOfDay(10, 0, 0))
                                                                                 .EndingDailyAt(TimeOfDay.HourMinuteAndSecondOfDay(23, 59, 59))
                                                                                 .OnSaturdayAndSunday())
                                                  .StartAt(startTime)
                                                  .EndAt(endTime)
                                                  .Build();

            Assert.AreEqual("test", trigger.Key.Name);
            Assert.AreEqual("test", trigger.Key.Group);
            Assert.AreEqual(true, startTime == trigger.StartTimeUtc);
            Assert.AreEqual(true, endTime == trigger.EndTimeUtc);
            Assert.AreEqual(IntervalUnit.Second, trigger.RepeatIntervalUnit);
            Assert.AreEqual(121, trigger.RepeatInterval);
            Assert.AreEqual(new TimeOfDay(10, 0, 0), trigger.StartTimeOfDay);
            Assert.AreEqual(new TimeOfDay(23, 59, 59), trigger.EndTimeOfDay);
            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes((IOperableTrigger)trigger, null, 48);

            Assert.AreEqual(48, fireTimes.Count);
        }
Ejemplo n.º 3
0
 public DailyTimeIntervalTriggerDetailDto(IDailyTimeIntervalTrigger trigger, ICalendar calendar) : base(trigger, calendar)
 {
     RepeatInterval     = trigger.RepeatInterval;
     TimesTriggered     = trigger.TimesTriggered;
     RepeatIntervalUnit = trigger.RepeatIntervalUnit;
     TimeZone           = new TimeZoneDto(trigger.TimeZone);
 }
Ejemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="trigger"></param>
 /// <param name="calendar"></param>
 public DailyTimeIntervalTriggerDetailDto(IDailyTimeIntervalTrigger trigger)
 {
     RepeatInterval     = trigger.RepeatInterval;
     TimesTriggered     = trigger.TimesTriggered;
     RepeatIntervalUnit = trigger.RepeatIntervalUnit;
     TimeZone           = trigger.TimeZone.ToDto();
 }
        public void TestCanSetTimeZone()
        {
            TimeZoneInfo est = TimeZoneUtil.FindTimeZoneById("Eastern Standard Time");

            IDailyTimeIntervalTrigger trigger = (IDailyTimeIntervalTrigger)TriggerBuilder.Create()
                                                .WithDailyTimeIntervalSchedule(x => x.WithIntervalInHours(1)
                                                                               .InTimeZone(est))
                                                .Build();

            Assert.AreEqual(est, trigger.TimeZone);
        }
 bool TriggerEquals(IDailyTimeIntervalTrigger x, IDailyTimeIntervalTrigger y)
 {
     return(TriggerEquals((ITrigger)x, (ITrigger)y) && Equals(x, y,
                                                              i => i.DaysOfWeek,
                                                              i => i.EndTimeOfDay,
                                                              i => i.RepeatCount,
                                                              i => i.RepeatInterval,
                                                              i => i.RepeatIntervalUnit,
                                                              i => i.StartTimeOfDay,
                                                              i => i.TimeZone));
 }
 public DailyTimeIntervalTrigger(IDailyTimeIntervalTrigger trigger, TriggerState state, string instanceName)
     : base(trigger, state, instanceName)
 {
     RepeatCount        = trigger.RepeatCount;
     RepeatIntervalUnit = trigger.RepeatIntervalUnit;
     RepeatInterval     = trigger.RepeatInterval;
     StartTimeOfDay     = trigger.StartTimeOfDay;
     EndTimeOfDay       = trigger.EndTimeOfDay;
     DaysOfWeek         = new HashSet <DayOfWeek>(trigger.DaysOfWeek);
     TimesTriggered     = trigger.TimesTriggered;
     TimeZone           = trigger.TimeZone.Id;
 }
 public void TestHourlyTrigger()
 {
     IDailyTimeIntervalTrigger trigger = (IDailyTimeIntervalTrigger) TriggerBuilder.Create()
         .WithIdentity("test")
         .WithDailyTimeIntervalSchedule(x => x.WithIntervalInHours(3))
         .Build();
     Assert.AreEqual("test", trigger.Key.Name);
     Assert.AreEqual("DEFAULT", trigger.Key.Group);
     Assert.AreEqual(IntervalUnit.Hour, trigger.RepeatIntervalUnit);
     //Assert.AreEqual(1, trigger.RepeatInterval);
     IList<DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes((IOperableTrigger) trigger, null, 48);
     Assert.AreEqual(48, fireTimes.Count);
 }
 public void TestEndingAtAfterCountOf1()
 {
     DateTimeOffset startTime = DateBuilder.DateOf(0, 0, 0, 1, 1, 2011);
     IDailyTimeIntervalTrigger trigger = (IDailyTimeIntervalTrigger) TriggerBuilder.Create()
         .WithIdentity("test")
         .WithDailyTimeIntervalSchedule(x => x.WithIntervalInMinutes(15)
             .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
             .EndingDailyAfterCount(1))
         .StartAt(startTime)
         .Build();
     Assert.AreEqual("test", trigger.Key.Name);
     Assert.AreEqual("DEFAULT", trigger.Key.Group);
     Assert.AreEqual(IntervalUnit.Minute, trigger.RepeatIntervalUnit);
     IList<DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes((IOperableTrigger) trigger, null, 48);
     Assert.AreEqual(48, fireTimes.Count);
     Assert.AreEqual(DateBuilder.DateOf(8, 0, 0, 1, 1, 2011), fireTimes[0]);
     Assert.AreEqual(DateBuilder.DateOf(8, 0, 0, 17, 2, 2011), fireTimes[47]);
     Assert.AreEqual(new TimeOfDay(8, 0), trigger.EndTimeOfDay);
 }
Ejemplo n.º 10
0
        public static DailyTriggerViewModel FromTrigger(IDailyTimeIntervalTrigger trigger)
        {
            var model = new DailyTriggerViewModel()
            {
                RepeatCount    = trigger.RepeatCount,
                RepeatInterval = trigger.RepeatInterval,
                RepeatUnit     = trigger.RepeatIntervalUnit,
                StartTime      = trigger.StartTimeOfDay.ToTimeSpan(),
                EndTime        = trigger.EndTimeOfDay.ToTimeSpan(),
                DaysOfWeek     = DaysOfWeekViewModel.Create(trigger.DaysOfWeek),
                TimeZone       = trigger.TimeZone.Id,
            };

            if (model.RepeatCount == -1)
            {
                model.RepeatCount   = null;
                model.RepeatForever = true;
            }

            return(model);
        }
        public void TestMinutelyTriggerWithTimeOfDay()
        {
            IDailyTimeIntervalTrigger trigger = (IDailyTimeIntervalTrigger) TriggerBuilder.Create()
                .WithIdentity("test", "group")
                .WithDailyTimeIntervalSchedule(x =>
                    x.WithIntervalInMinutes(72)
                        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
                        .EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(17, 0))
                        .OnMondayThroughFriday())
                .Build();

            Assert.AreEqual("test", trigger.Key.Name);
            Assert.AreEqual("group", trigger.Key.Group);
            Assert.AreEqual(true, SystemTime.UtcNow() >= trigger.StartTimeUtc);
            Assert.AreEqual(true, null == trigger.EndTimeUtc);
            Assert.AreEqual(IntervalUnit.Minute, trigger.RepeatIntervalUnit);
            Assert.AreEqual(72, trigger.RepeatInterval);
            Assert.AreEqual(new TimeOfDay(8, 0), trigger.StartTimeOfDay);
            Assert.AreEqual(new TimeOfDay(17, 0), trigger.EndTimeOfDay);
            IList<DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes((IOperableTrigger) trigger, null, 48);
            Assert.AreEqual(48, fireTimes.Count);
        }
Ejemplo n.º 12
0
 public DailyTimeIntervalTriggerDetailDto(IDailyTimeIntervalTrigger trigger, ICalendar calendar) : base(trigger, calendar)
 {
     RepeatInterval = trigger.RepeatInterval;
     TimesTriggered = trigger.TimesTriggered;
     RepeatIntervalUnit = trigger.RepeatIntervalUnit;
     TimeZone = new TimeZoneDto(trigger.TimeZone);
 }