Beispiel #1
0
        public void LoadModel(BasicSchedule schedule)
        {
            Type scheduleType = schedule.GetType();

            dtpStartDate.Value = schedule.BeginTime;
            dtpStartTime.Value = schedule.BeginTime;

            if (schedule.RepeatPeriod.HasValue)
            {
                cbRepeat.Checked       = true;
                mtbRepeatInterval.Text = schedule.RepeatPeriod.Value.ToString("hhmmss");
                if (schedule.RepeatUntil.HasValue)
                {
                    cbRepeatUntil.Checked = true;
                    mtbRepeatUntil.Text   = schedule.RepeatUntil.Value.ToString("hhmmss");
                }
            }

            if (schedule.EndTime.HasValue)
            {
                cbUntil.Checked    = true;
                dtpUntilDate.Value = schedule.EndTime.Value;
                dtpUntilTime.Value = schedule.EndTime.Value;
            }

            cbEnabled.Checked = schedule.Enabled;

            if (scheduleType == typeof(BasicSchedule))
            {
                rbOneTime.Checked = true;
            }
            else if (scheduleType == typeof(DayRepeatSchedule))
            {
                var daySchedule = schedule as DayRepeatSchedule;
                rbPerDay.Checked = true;
                nudDays.Value    = daySchedule.RepeatPerDays;
            }
            else if (scheduleType == typeof(WeekRepeatSchedule))
            {
                var weekSchedule = schedule as WeekRepeatSchedule;
                rbPerWeek.Checked = true;
                nudWeeks.Value    = weekSchedule.RepeatPerWeeks;
                foreach (var day in weekSchedule.RepeatWeekDays)
                {
                    clbWeekDays.SetItemChecked((int)day, true);
                }
            }
            else if (scheduleType == typeof(MonthRepeatSchedule))
            {
                var monthSchedule = schedule as MonthRepeatSchedule;
                rbPerMonth.Checked = true;
                foreach (var index in monthSchedule.Months)
                {
                    clbMonth.SetItemChecked(index, true);
                }
                if (clbMonth.CheckedItems.Count == clbMonth.Items.Count - 1)
                {
                    clbMonth.SetItemChecked(0, true);
                }

                pwMonth_Closed(pwMonth, null);

                if (monthSchedule.Days != null)
                {
                    rbDays.Checked = true;
                    foreach (var index in monthSchedule.Days)
                    {
                        clbDays.SetItemChecked(index, true);
                    }
                    if (clbDays.CheckedItems.Count == clbDays.Items.Count - 1)
                    {
                        clbDays.SetItemChecked(0, true);
                    }
                    pwMonth_Closed(pwDays, null);
                }
                else
                {
                    rbOn.Checked = true;
                    foreach (var index in monthSchedule.WeekOrders)
                    {
                        clbOrder.SetItemChecked(index, true);
                    }
                    if (clbOrder.CheckedItems.Count == clbOrder.Items.Count - 1)
                    {
                        clbOrder.SetItemChecked(0, true);
                    }

                    foreach (var index in monthSchedule.WeekDays)
                    {
                        clbWeeks.SetItemChecked((int)index + 1, true);
                    }
                    if (clbWeeks.CheckedItems.Count == clbWeeks.Items.Count - 1)
                    {
                        clbWeeks.SetItemChecked(0, true);
                    }

                    pwMonth_Closed(pwOrder, null);
                    pwMonth_Closed(pwWeeks, null);
                }
            }
            else
            {
                throw new ArgumentOutOfRangeException("未支持的计划类型");
            }
        }
Beispiel #2
0
        public void LoadModel(BasicSchedule schedule)
        {
            Type scheduleType = schedule.GetType();

            StartAtDate = schedule.BeginTime;

            if (schedule.RepeatPeriod.HasValue)
            {
                RepeatSchedule = true;
                RepeatPeriod   = schedule.RepeatPeriod.Value;
                if (schedule.RepeatUntil.HasValue)
                {
                    RepeatUntil     = true;
                    RepeatUntilTime = schedule.RepeatUntil.Value;
                }
            }

            if (schedule.EndTime.HasValue)
            {
                HasEndTime = true;
                EndTime    = schedule.EndTime.Value;
            }

            IsEnabled = schedule.Enabled;


            var weekdays   = (WeekDay[])Window.AdvancedOptionsGroupBox.FindResource("WeekDays");
            var months     = (WitchMonth[])Window.AdvancedOptionsGroupBox.FindResource("Months");
            var monthWeeks = (WitchWeek[])Window.AdvancedOptionsGroupBox.FindResource("MonthWeeks");
            var monthDays  = (MonthDay[])Window.AdvancedOptionsGroupBox.FindResource("MonthDays");

            if (scheduleType == typeof(BasicSchedule))
            {
                IsOnce = true;
            }
            else if (scheduleType == typeof(DayRepeatSchedule))
            {
                var daySchedule = schedule as DayRepeatSchedule;
                IsEveryDay           = true;
                EveryDayIntervalDays = daySchedule.RepeatPerDays;
            }
            else if (scheduleType == typeof(WeekRepeatSchedule))
            {
                var weekSchedule = schedule as WeekRepeatSchedule;
                IsEveryWeek            = true;
                EveryWeekIntervalWeeks = weekSchedule.RepeatPerWeeks;

                var weekDays = new List <WeekDay>();
                foreach (var dayOfWeek in weekSchedule.RepeatWeekDays)
                {
                    weekDays.Add(weekdays.First(wd => wd.DayOfWeek == dayOfWeek));
                }

                EveryWeekWeekDays = new ObservableCollection <WeekDay>(weekDays);
            }
            else if (scheduleType == typeof(MonthRepeatSchedule))
            {
                var monthSchedule = schedule as MonthRepeatSchedule;
                IsEveryMonth = true;


                var selectedMonths = new List <WitchMonth>();

                foreach (var monthOrder in monthSchedule.Months)
                {
                    selectedMonths.Add(months.First(m => m.Month == monthOrder));
                }

                EveryMonthMonths = new ObservableCollection <WitchMonth>(selectedMonths);


                if (monthSchedule.Days != null)
                {
                    EveryMonthDaySchedule = true;

                    var selectedDays = new List <MonthDay>();

                    foreach (var day in monthSchedule.Days)
                    {
                        selectedDays.Add(monthDays.First(d => d.Day == day));
                    }

                    EveryMonthDays = new ObservableCollection <MonthDay>(selectedDays);
                }
                else
                {
                    EveryMonthWeekSchedule = true;
                    var selectedWeeks = new List <WitchWeek>();

                    foreach (var weekOrder in monthSchedule.WeekOrders)
                    {
                        selectedWeeks.Add(monthWeeks.First(mw => mw.WeekNumber == weekOrder));
                    }

                    EveryMonthWeeks = new ObservableCollection <WitchWeek>(selectedWeeks);

                    var selectedWeekDays = new List <WeekDay>();
                    foreach (var dayOfWeek in monthSchedule.WeekDays)
                    {
                        selectedWeekDays.Add(weekdays.First(wd => wd.DayOfWeek == dayOfWeek));
                    }

                    EveryMonthWeekDays = new ObservableCollection <WeekDay>(selectedWeekDays);
                }
            }
            else
            {
                throw new ArgumentOutOfRangeException("未支持的计划类型");
            }
        }