public IActionResult ShowTimetable(TeacherSubjectsViewModel model, int?id) { if (!ModelState.IsValid) { return(RedirectToAction("Teachers")); } if (id != null) { Teacher teacher = db.Teachers.FirstOrDefault(u => u.AccountId == id); Subject subject = db.Subjects.FirstOrDefault(s => s.SubjectId == model.CurrentSubjectId); if (teacher == null || subject == null) { return(RedirectToAction("Teachers")); } var tempRecords = db.Records.Where(r => r.SubjectId == subject.SubjectId); var timetable = db.Timetable.Where(tt => tempRecords.FirstOrDefault(r => r.RecordId == tt.RecordId) != null && tt.TeacherAccountId == teacher.AccountId); var records = tempRecords.Where(r => timetable.FirstOrDefault(tt => tt.RecordId == r.RecordId) != null); var students = db.Students.Where(s => records.FirstOrDefault(r => r.StudentAccountId == s.AccountId) != null); model.CurrentTeacher = teacher; model.CurrentSubject = subject; model.Records = records; model.Timetable = timetable; model.Students = students; model.Subjects = db.Subjects; return(View("Timetable", model)); } return(RedirectToAction("Teachers")); }
public async Task <TeacherSubjectsViewModel> GetAllSubjects(string user) { var subjects = await _db.Subjects.ToListAsync(); var teacher = await _db.Teachers.Include(x => x.TeacherSubject).FirstOrDefaultAsync(x => x.Mail == user); var teacherSubjectsViewModel = new TeacherSubjectsViewModel { Subjects = subjects, Teacher = teacher }; return(teacherSubjectsViewModel); }
public async Task <IActionResult> Timetable(int?teach, int?subj) { if (teach != null) { Teacher teacher = null; Subject subject = null; IQueryable <Timetable> timetable = null; IQueryable <Student> students = null; IQueryable <Record> records = null; IQueryable <Subject> subjects = db.Subjects; if (subj != null) { teacher = db.Teachers.FirstOrDefault(u => u.AccountId == teach); subject = db.Subjects.FirstOrDefault(s => s.SubjectId == subj); if (teacher == null || subject == null) { return(RedirectToAction("Teachers")); } var tempRecords = db.Records.Where(r => r.SubjectId == subject.SubjectId); timetable = db.Timetable.Where(tt => tempRecords.FirstOrDefault(r => r.RecordId == tt.RecordId) != null && tt.TeacherAccountId == teacher.AccountId); records = tempRecords.Where(r => timetable.FirstOrDefault(tt => tt.RecordId == r.RecordId) != null); students = db.Students.Where(s => records.FirstOrDefault(r => r.StudentAccountId == s.AccountId) != null); } else { teacher = await db.Teachers.FirstOrDefaultAsync(u => u.AccountId == teach); if (teacher == null) { return(RedirectToAction("Teachers")); } timetable = db.Timetable.Where(tt => tt.TeacherAccountId == teacher.AccountId); records = db.Records.Where(r => timetable.FirstOrDefault(tt => tt.RecordId == r.RecordId) != null); } var model = new TeacherSubjectsViewModel { CurrentTeacher = teacher, CurrentSubject = subject, Timetable = timetable, Students = students, Records = records, Subjects = subjects }; return(View("Timetable", model)); } return(RedirectToAction("Teachers")); }
public IActionResult AddIntoTimeTable(int teach, int subj) { Teacher teacher = db.Teachers.FirstOrDefault(u => u.AccountId == teach); Subject subject = db.Subjects.FirstOrDefault(s => s.SubjectId == subj); var model = new TeacherSubjectsViewModel { CurrentTeacher = teacher, CurrentSubject = subject, Timetable = null, Students = null, Records = null, Subjects = null }; return(View("Create/Timetable", model)); }
public IActionResult AddIntoTimeTable(TeacherSubjectsViewModel model, int teach, int subj) { Teacher teacher = db.Teachers.FirstOrDefault(u => u.AccountId == teach); Subject subject = db.Subjects.FirstOrDefault(s => s.SubjectId == subj); var timetable = db.Timetable.Where(t => t.TtWeekDay == model.DayOfWeek && t.TtNumLesson == model.NumberLeson); var records = db.Records.Where(r => r.SubjectId == subject.SubjectId && timetable.FirstOrDefault(t => t.RecordId == r.RecordId) == null); var students = db.Students.Where(s => records.FirstOrDefault(r => r.StudentAccountId == s.AccountId) != null); model.CurrentTeacher = teacher; model.CurrentSubject = subject; model.Timetable = null; model.Students = students; model.Records = records; model.Subjects = null; return(View("Create/Timetable", model)); }