Пример #1
0
        private JobScheduleFrequencyBase GetJobScheduleFrequency()
        {
            JobScheduleFrequencyBase jobScheduleFrequency = null;
            var    timeFrequency = GetTimeFrequency();
            string frequencyType = this.ddlFrequency.Items[ddlFrequency.SelectedIndex].Value;

            switch (frequencyType)
            {
            case "daily":
                int dayCount = int.Parse(txtRecurDay.Value);
                jobScheduleFrequency = new DailyJobScheduleFrequency(dayCount, timeFrequency);
                break;

            case "weekly":
                List <DayOfWeek> weekdays = GetSelectedWeekday();
                jobScheduleFrequency = new WeeklyJobScheduleFrequency(weekdays, int.Parse(txtWeek.Value), timeFrequency);
                break;

            case "monthly":
                int days   = int.Parse(this.txtDayOfWeek.Value);
                int months = int.Parse(this.txtMonthCount.Value);
                jobScheduleFrequency = new MonthlyJobScheduleFrequency(days, months, timeFrequency);
                break;

            default:
                break;
            }
            //jobScheduleFrequency.LastModifyTime = DateTime.Now;

            return(jobScheduleFrequency);
        }
Пример #2
0
        public void EstimateWeekIntervalWeeklyFixdTimeJobScheduleFrequencyTest()
        {
            WeeklyJobScheduleFrequency weeklyFrequency = PrepareWeeklyJobSchedule(2, DayOfWeek.Monday);

            List <DateTime> estimateTime = weeklyFrequency.EstimateExecuteTime(DateTime.Now, _TimeOffset, 20, TimeSpan.FromSeconds(10));

            estimateTime.ForEach(d => Console.WriteLine(d.ToString("yyyy-MM-dd HH:mm:ss")));
        }
Пример #3
0
        public void NotMatchWeekDayWeeklyFixdTimeJobScheduleFrequencyTest()
        {
            WeeklyJobScheduleFrequency weeklyFrequency = PrepareWeeklyJobSchedule(1, DayOfWeek.Monday);

            DateTime now       = DateTime.Now;
            DateTime startTime = now.AddDays(-((int)now.DayOfWeek - (int)DayOfWeek.Sunday)).Date;

            DateTime timePoint = startTime.AddDays(2) + new TimeSpan(10, 10, 10);;

            TimeScope scope = weeklyFrequency.GetTimeScope(startTime, timePoint, _TimeOffset);

            Assert.IsNull(scope);
        }
Пример #4
0
        public void WeeklyFixdTimeJobScheduleFrequencyTest()
        {
            WeeklyJobScheduleFrequency weeklyFrequency = PrepareWeeklyJobSchedule(1, DayOfWeek.Monday);

            DateTime now       = DateTime.Now;
            DateTime startTime = now.AddDays(-((int)now.DayOfWeek - (int)DayOfWeek.Sunday)).Date;

            DateTime timePoint = startTime.AddDays(1) + new TimeSpan(10, 10, 10);;

            TimeScope scope = weeklyFrequency.GetTimeScope(startTime, timePoint, _TimeOffset);

            Assert.IsNotNull(scope);

            Console.WriteLine(scope.BeginTime);
            Console.WriteLine(scope.EndTime);

            Assert.AreEqual(new TimeSpan(10, 10, 10) - _TimeOffset, scope.BeginTime);
            Assert.AreEqual(new TimeSpan(10, 10, 10) + _TimeOffset, scope.EndTime);
        }
Пример #5
0
        public void WithLastExeTimeMatchWeekIntervalWeeklyFixdTimeJobScheduleFrequencyTest()
        {
            List <DayOfWeek> daysList = new List <DayOfWeek>();

            daysList.Add(DayOfWeek.Monday);
            daysList.Add(DayOfWeek.Tuesday);
            daysList.Add(DayOfWeek.Wednesday);
            daysList.Add(DayOfWeek.Thursday);
            daysList.Add(DayOfWeek.Friday);

            FixedTimeFrequency frequency = new FixedTimeFrequency(new TimeSpan(6, 0, 0));

            WeeklyJobScheduleFrequency weeklyFrequency = new WeeklyJobScheduleFrequency(daysList, 1, frequency);

            DateTime startTime   = new DateTime(2013, 5, 31);
            DateTime lastExeTime = new DateTime(2013, 7, 30, 5, 59, 27);

            DateTime checkPoint = new DateTime(2013, 7, 30, 6, 0, 27);
            bool     result     = weeklyFrequency.IsNextExecuteTime(startTime, lastExeTime, checkPoint, TimeSpan.FromSeconds(60 / 2 * 1.1));

            Assert.IsFalse(result);
        }
		public void WithLastExeTimeMatchWeekIntervalWeeklyFixdTimeJobScheduleFrequencyTest()
		{
			List<DayOfWeek> daysList = new List<DayOfWeek>();

			daysList.Add(DayOfWeek.Monday);
			daysList.Add(DayOfWeek.Tuesday);
			daysList.Add(DayOfWeek.Wednesday);
			daysList.Add(DayOfWeek.Thursday);
			daysList.Add(DayOfWeek.Friday);

			FixedTimeFrequency frequency = new FixedTimeFrequency(new TimeSpan(6, 0, 0));

			WeeklyJobScheduleFrequency weeklyFrequency = new WeeklyJobScheduleFrequency(daysList, 1, frequency);

			DateTime startTime = new DateTime(2013, 5, 31);
			DateTime lastExeTime = new DateTime(2013, 7, 30, 5, 59, 27);

			DateTime checkPoint = new DateTime(2013, 7, 30, 6, 0, 27);
			bool result = weeklyFrequency.IsNextExecuteTime(startTime, lastExeTime, checkPoint, TimeSpan.FromSeconds(60 / 2 * 1.1));

			Assert.IsFalse(result);
		}