/// <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);
        }