private void UpdateTeacher(Teacher teacher)
        {
            previouslySelectedTeacher = null;

            teacher.requirements = new Requirements(1, GetTeacherAvailability(), null);
            teacher.name = textBoxTeacherName.Text;

            RefreshTeachers();

            refreshSubjectsTab();
        }
        private void listBoxTeachers_SelectedIndexChanged(object sender, EventArgs e)
        {
            var selectedTeacher = listBoxTeachers.SelectedItem as Teacher;

            if (selectedTeacher == null)
            {
                if (previouslySelectedTeacher != null)
                {
                    UpdateTeacher(previouslySelectedTeacher);
                }

                listBoxTeacherMonday.ClearSelected();
                listBoxTeacherTuesday.ClearSelected();
                listBoxTeacherWednesday.ClearSelected();
                listBoxTeacherThursday.ClearSelected();
                listBoxTeacherFriday.ClearSelected();
                listBoxTeacherSaturday.ClearSelected();

                textBoxTeacherName.Text = "";
                return;
            }

            previouslySelectedTeacher = selectedTeacher;

            UIHelpers.SetObjectTimeSlots(listBoxTeacherMonday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Monday));
            UIHelpers.SetObjectTimeSlots(listBoxTeacherTuesday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Tuesday));
            UIHelpers.SetObjectTimeSlots(listBoxTeacherWednesday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Wednesday));
            UIHelpers.SetObjectTimeSlots(listBoxTeacherThursday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Thursday));
            UIHelpers.SetObjectTimeSlots(listBoxTeacherFriday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Friday));
            UIHelpers.SetObjectTimeSlots(listBoxTeacherSaturday, selectedTeacher.requirements.availableTimeSlots.Where(t => t.Day == DayOfWeek.Saturday));

            textBoxTeacherName.Text = selectedTeacher.name;
        }
 public IEnumerable<ScheduledTimeSlot> GetTeacherProgram(Teacher teacher)
 {
     return Schedule.Where(s => s.subject.teachers.Contains(teacher));
 }