} // constructor public void SetSchedule(RecordSchedule schedule, bool isNew) { if ((schedule.Kind == RecordScheduleKind.RightNow) && (!isNew)) { throw new InvalidOperationException("A 'RightNow' recording task can not be edited!"); } // if OriginalDateTime = schedule.StartDate; foreach (var fragment in ScheduleFragments) { if (schedule.Kind == fragment.Kind) { fragment.SetSchedule(schedule); } else { fragment.SetSchedule(RecordSchedule.CreateWithDefaultValues(fragment.Kind)); } } // foreach foreach (var radio in RadioButtons) { var kind = (RecordScheduleKind)radio.Tag; radio.Checked = (schedule.Kind == kind); // if we're editing an existing record task, we can't set its type as 'Right now' radio.Enabled = isNew ? true : (kind != RecordScheduleKind.RightNow); } // foreach SetPatternKind(schedule.Kind); } // SetSchedule
} // UpdateStartDate public void SetSchedule(RecordSchedule schedule) { Schedule = (RecordWeekly)schedule; numericRecurEvery.Value = Schedule.RecurEveryWeeks; for (int index = 0; index < ListIndexDay.Length; index++) { checkedListDays.SetItemChecked(index, (Schedule.WeekDays & ListIndexDay[index]) != 0); } // for index } // SetSchedule
} // GetRecordProgram public static RecordSchedule GetRecordSchedule(EpgProgram epgProgram, bool isCurrent) { RecordSchedule schedule; if (epgProgram == null) { throw new ArgumentNullException(nameof(epgProgram)); } if (isCurrent) { schedule = RecordSchedule.CreateWithDefaultValues(RecordScheduleKind.RightNow); } else { schedule = RecordSchedule.CreateWithDefaultValues(RecordScheduleKind.OneTime); schedule.ExpiryDate = epgProgram.LocalEndTime + epgProgram.Duration + RecordChannelDialog.DefaultExpiryDateTimeSpan; } // if-else schedule.StartDate = epgProgram.LocalStartTime; return(schedule); } // GetRecordSchedule
} // UpdateStartDate public void SetSchedule(RecordSchedule schedule) { Schedule = (RecordRightNow)schedule; } // SetSchedule
} // UpdateStartDate public void SetSchedule(RecordSchedule schedule) { Schedule = (RecordMonthly)schedule; } // SetSchedule
} // UpdateStartDate public void SetSchedule(RecordSchedule schedule) { Schedule = (RecordDaily)schedule; numericRecurEvery.Value = Schedule.RecurEveryDays; } // SetSchedule
} // GetDuration private void SetSchedule(TaskDefinition definition, RecordSchedule recordSchedule) { switch (recordSchedule.Kind) { case RecordScheduleKind.RightNow: { var rightNow = new TimeTrigger { EndBoundary = DateTime.Now.TruncateToSeconds() + _totalRecordTime + new TimeSpan(0, 1, 0) }; definition.Triggers.Add(rightNow); break; } // case RecordScheduleKind.RightNow case RecordScheduleKind.OneTime: { var oneTime = new TimeTrigger(); var schedule = (RecordOneTime)recordSchedule; oneTime.StartBoundary = schedule.StartDate - _startSafetyMargin; oneTime.EndBoundary = schedule.StartDate + _totalRecordTime; definition.Triggers.Add(oneTime); break; } // case RecordScheduleKind.OneTime case RecordScheduleKind.Daily: { var daily = new DailyTrigger(); var schedule = (RecordDaily)recordSchedule; daily.StartBoundary = schedule.StartDate - _startSafetyMargin; if (schedule.ExpiryDate.HasValue) { daily.EndBoundary = schedule.ExpiryDate.Value; } // if daily.DaysInterval = schedule.RecurEveryDays; definition.Triggers.Add(daily); break; } // case RecordScheduleKind.Daily case RecordScheduleKind.Weekly: { var weekly = new WeeklyTrigger(); var schedule = (RecordWeekly)recordSchedule; weekly.StartBoundary = schedule.StartDate - _startSafetyMargin; if (schedule.ExpiryDate.HasValue) { weekly.EndBoundary = schedule.ExpiryDate.Value; } // if weekly.WeeksInterval = schedule.RecurEveryWeeks; weekly.DaysOfWeek = GetDaysOfTheWeek(schedule.WeekDays); definition.Triggers.Add(weekly); break; } // case RecordScheduleKind.Weekly case RecordScheduleKind.Monthly: { var monthly = new MonthlyTrigger(); var schedule = (RecordMonthly)recordSchedule; monthly.StartBoundary = schedule.StartDate - _startSafetyMargin; if (schedule.ExpiryDate.HasValue) { monthly.EndBoundary = schedule.ExpiryDate.Value; } // if throw new NotImplementedException(); } // case RecordScheduleKind.Monthly default: throw new IndexOutOfRangeException(); } // switch } // SetSchedule
} // UpdateStartDate public void SetSchedule(RecordSchedule schedule) { Schedule = (RecordOneTime)schedule; } // SetSchedule