// Laden und sortieren der geplanten Aufnahmen.
IEnumerable<Schedule> scheduleQuery = schedules.Where(schedule => DoSelectSchedule(schedule, null)).OrderBy(schedule => schedule.StartTime).ThenBy(schedule => schedule.ReferencedChannel().DisplayName);
// Verheiraten der geplanten Aufnahmen mit der Sendung
// und begrenzen der Aufnahmen um den eingestellten Planungszeitraum.
foreach (var schedule in scheduleQuery) {
var programs = Schedule.GetProgramsForSchedule(schedule);
if (programs.Count > 0) {
foreach (var program in programs) {
if (DoSelectProgram(program, anEndDate)) {
ScheduledProgram scheduledProgram = new ScheduledProgram(program, schedule);
addToScheduledPrograms(scheduledPrograms, scheduledProgram);
}
}
} else {
// Manuell eingetragene, einmalig auszuführende Aufnahme
// ohne Bezug zu einer Sendung
if (DoSelectSchedule(schedule, anEndDate)) {
ScheduledProgram scheduledProgram = new ScheduledProgram(null, schedule);
addToScheduledPrograms(scheduledPrograms, scheduledProgram);
}
}
}