/// <summary> /// Return null if there are no more subjects /// </summary> private WeekInfo ParseWeekRow(IExcelDataReader reader, bool isEvenWeek, bool isUpperRowOfWeek) { if (!reader.Read()) { return(null); } var weekRowInfo = new WeekInfo() { Days = new List <SchoolDayInfo>() }; int subjectTitleColumn = 1; if (isUpperRowOfWeek) { // Get subject info: title / from-to-time weekRowInfo.SubjectSection = GetStringValue(reader, subjectTitleColumn); } for (DayOfWeek day = DayOfWeek.Monday; DayHelper.IsSchoolDay(day); day++) { List <PeriodInfo> periods = ParseSchoolDay(reader, day, isUpperRowOfWeek); weekRowInfo.Days.Add(new SchoolDayInfo { Day = day, Periods = periods }); } int teachersColumn = GetTeachersSectionColumn(); // Get teachers if (!isEvenWeek && isUpperRowOfWeek) { string teachers = GetStringValue(reader, teachersColumn); weekRowInfo.TeachersSection = teachers; //ConsoleHelper.WriteOk("Teachers: " + teachers); } return(weekRowInfo); }