private Microsoft.Win32.TaskScheduler.Trigger GetTrigger(Schedule schedule) { switch (schedule.RepeatType.TypeOfRepeat) { case ScheduleRepeat.ScheduleRepeats.NoRepeat: ScheduleRepeatTypes.NoRepeat r1 = schedule.RepeatType as ScheduleRepeatTypes.NoRepeat; Microsoft.Win32.TaskScheduler.TimeTrigger trigger1 = new Microsoft.Win32.TaskScheduler.TimeTrigger(Njit.Common.PersianCalendar.ToDateTime(r1.StartDate, r1.StartTime, '/', ':')); return(trigger1); case ScheduleRepeat.ScheduleRepeats.Daily: ScheduleRepeatTypes.Daily r2 = schedule.RepeatType as ScheduleRepeatTypes.Daily; Microsoft.Win32.TaskScheduler.DailyTrigger trigger2 = new Microsoft.Win32.TaskScheduler.DailyTrigger(); trigger2.StartBoundary = Njit.Common.PersianCalendar.ToDateTime(r2.StartDate, r2.ExecuteTime, '/', ':'); trigger2.EndBoundary = Njit.Common.PersianCalendar.ToDateTime(r2.EndDate, r2.EndTime, '/', ':'); return(trigger2); case ScheduleRepeat.ScheduleRepeats.Weekly: ScheduleRepeatTypes.Weekly r3 = schedule.RepeatType as ScheduleRepeatTypes.Weekly; Microsoft.Win32.TaskScheduler.WeeklyTrigger trigger3 = new Microsoft.Win32.TaskScheduler.WeeklyTrigger(); trigger3.StartBoundary = Njit.Common.PersianCalendar.ToDateTime(r3.StartDate, r3.ExecuteTime, '/', ':'); trigger3.EndBoundary = Njit.Common.PersianCalendar.ToDateTime(r3.EndDate, r3.EndTime, '/', ':'); trigger3.DaysOfWeek = GetDaysOfWeek(r3.WeekDays); return(trigger3); case ScheduleRepeat.ScheduleRepeats.Monthly: ScheduleRepeatTypes.Monthly r4 = schedule.RepeatType as ScheduleRepeatTypes.Monthly; Microsoft.Win32.TaskScheduler.MonthlyTrigger trigger4 = new Microsoft.Win32.TaskScheduler.MonthlyTrigger(); trigger4.StartBoundary = Njit.Common.PersianCalendar.ToDateTime(r4.StartDate, r4.ExecuteTime, '/', ':'); trigger4.EndBoundary = Njit.Common.PersianCalendar.ToDateTime(r4.EndDate, r4.EndTime, '/', ':'); trigger4.MonthsOfYear = GetMonthsOfYear(r4.Months); trigger4.DaysOfMonth = new int[] { r4.MonthDay }; return(trigger4); default: throw new Exception(); } }
/// <summary> /// Retrieves the edited task scheduler trigger /// </summary> /// <returns></returns> public Microsoft.Win32.TaskScheduler.Trigger GetTrigger() { Microsoft.Win32.TaskScheduler.Trigger Result = null; DateTime StartBoundary = this.BeginDateTimePicker.Value; // The trigger type depends on the selected tab if (this.PeriodTabControl.SelectedTab.Equals(this.TabOnce)) { Result = new Microsoft.Win32.TaskScheduler.TimeTrigger(); StartBoundary = this.OnceMonthCalendar.SelectionStart.Date + this.BeginDateTimePicker.Value.TimeOfDay; } else if (this.PeriodTabControl.SelectedTab.Equals(this.TabDaily)) Result = new Microsoft.Win32.TaskScheduler.DailyTrigger((short)this.DailyNumericUpDown.Value); else if (this.PeriodTabControl.SelectedTab.Equals(this.TabWeekly)) Result = new Microsoft.Win32.TaskScheduler.WeeklyTrigger(GetDayOfWeek(this.WeeklyGroupBox), (short)this.WeeksNumericUpDown.Value); else if (this.PeriodTabControl.SelectedTab.Equals(this.TabMonthly) && this.MonthlyOrCheckBox.Checked) Result = new Microsoft.Win32.TaskScheduler.MonthlyDOWTrigger(GetDayOfWeek(this.DaysGroupBox1), Microsoft.Win32.TaskScheduler.MonthsOfTheYear.AllMonths, GetWhich()); else if (this.PeriodTabControl.SelectedTab.Equals(this.TabMonthly)) Result = new Microsoft.Win32.TaskScheduler.MonthlyTrigger(1, Microsoft.Win32.TaskScheduler.MonthsOfTheYear.AllMonths) { DaysOfMonth = this.MonthlyDaysPicker.DaysPicked1IfEmpty, }; else return null; Result.Enabled = this.EnableCheckBox.Checked; Result.StartBoundary = StartBoundary; return Result; }