示例#1
0
        public ActionResult LecturersJournal(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            Teachers          Lecturer;
            LecturerViewModel viewModel = new LecturerViewModel();

            using (DiaryConnection db = new DiaryConnection())
            {
                //Находим семестер, группу и предмет для запроса.
                //Вначале находим самый близкий к сегодняшней дате семестер
                var             TGS            = db.TeachersGroupsSubjects.Where(p => p.TeacherId == id);
                List <Semester> founsSemesters = new List <Semester>();
                //Находим все семестры в которые преподавал преподаватель
                foreach (var item in TGS)
                {
                    var tables = item.TableOfGrades;
                    foreach (var table in tables)
                    {
                        founsSemesters.Add(table.Semester);
                    }
                }
                founsSemesters = founsSemesters.Distinct().ToList();
                //Находим самый близкий к сегодняшней дате семестер
                Semester youngestSemester = founsSemesters.First();
                foreach (var semester in founsSemesters)
                {
                    if (semester.BeginningDate > youngestSemester.BeginningDate)
                    {
                        youngestSemester = youngestSemester;
                    }
                }
                //Получаем первую попавшиеся группу и предмет для найденного семестра.
                Groups   group   = youngestSemester.TableOfGrades.First().TeachersGroupsSubjects.Groups;
                Subjects subject = youngestSemester.TableOfGrades.First().TeachersGroupsSubjects.Subjects;
                //Заполняем модель представления.
                viewModel.GetAllFinalGrades(db, group.Id, id.Value, subject.Id, youngestSemester);
                //Заполнения модели представления
                //Получение название предметов для журнала
                viewModel.GetNamesOfStudents(db, group.Id, id.Value, subject.Id, youngestSemester);
                //Получение данных для заполнения области таблицы с оценками
                viewModel.GetStudentsGrades(db, group.Id, id.Value, subject.Id, youngestSemester);
                //Для строки с названиями месяцев
                viewModel.GetMounthNames();
                //С количеством дней в месяцах для для colspan.
                viewModel.GetDaysMounth();
                //Для отображение строки где день месяца + день недели.
                viewModel.GetDaysSemester();
                //Для формирование таблиц с итоговыми оценками
                viewModel.GetAllFinalGrades(db, group.Id, id.Value, subject.Id, youngestSemester);
            }
            return(View(viewModel));
        }