public bool AddLessons(ClassGroupDTO data) { try { LoginController.checkOnAccess(this.Request.Headers); } catch (Exception ex) { throw ex; }; var db = new DBModel(); try { foreach (var id in data.lessonIDs) { var query = from lc in db.LessonsToClasses where lc.ClassId == data.Id && lc.LessonId == id select lc; query.First().IsActive = true; } ; db.SaveChanges(); return(true); } catch (Exception ex) { throw ex; }; }
public ClassGroupDTO LoadAddLessonsPage(string category, int grade) { try { LoginController.checkOnAccess(this.Request.Headers); } catch (Exception ex) { throw ex; }; var db = new DBModel(); try { ClassGroupDTO classGroup = new ClassGroupDTO(); classGroup.lessons = new List <LessonDTO>(); classGroup.lessons = (from l in db.Lessons where l.Category == category && l.Grade == grade orderby l.SeqNum select new LessonDTO { Id = l.Id, Name = l.Name, Description = l.Description, SeqNum = l.SeqNum }).ToList(); return(classGroup); } catch (Exception ex) { throw ex; }; }
public bool CreateClass(ClassGroupDTO data) { try { LoginController.checkOnAccess(this.Request.Headers); } catch (Exception ex) { throw ex; }; var db = new DBModel(); try { int schoolId = GetSchoolId(data.TeacherUserName, "teacher"); //Create new ClassGroup record db.ClassGroups.Add(new ClassGroup { Category = data.Category, Grade = data.Grade, SchoolId = schoolId }); db.SaveChanges(); int classId = (from c in db.ClassGroups where c.Category == data.Category && c.Grade == data.Grade && c.SchoolId == schoolId orderby c.Id descending select c.Id).First(); //Assign the teacher to the class by creating new Teacher to Class record int teacherId = LoginController.GetUserID(data.TeacherUserName, "teacher"); db.TeachersToClasses.Add(new TeacherToClasses { ClassId = classId, TeacherId = teacherId }); //Get the list of all lessons of the category for the grade var query = from l in db.Lessons where l.Category == data.Category && l.Grade == data.Grade select l.Id; //Add all the lessons of the category for the grade to the new class group foreach (var lessonId in query) { bool isActive; if (data.lessonIDs.Exists(x => x == lessonId)) { isActive = true; } else { isActive = false; }; db.LessonsToClasses.Add(new LessonsToClass { ClassId = classId, LessonId = lessonId, IsActive = isActive }); } ; db.SaveChanges(); return(true); } catch (Exception ex) { throw ex; }; }
public ClassGroupDTO LoadClassPage(int courseId, string userName) { try { LoginController.checkOnAccess(this.Request.Headers); } catch (Exception ex) { throw ex; }; var db = new DBModel(); try { ClassGroupDTO classGroup = (from c in db.ClassGroups where c.Id == courseId select new ClassGroupDTO { Category = c.Category, Grade = c.Grade }).First(); classGroup.Teacher = (from tc in db.TeachersToClasses where tc.ClassId == courseId join t in db.Teachers on tc.TeacherId equals t.Id select t.Name).First(); classGroup.numOfStudents = (from sc in db.StudentsToClasses where sc.ClassId == courseId select sc).Count(); classGroup.message = (from m in db.Messages where m.ClassId == courseId select new MessageDTO { Text = m.Text, Date = m.Date }).FirstOrDefault(); classGroup.lessons = new List <LessonDTO>(); classGroup.lessons = (from lc in db.LessonsToClasses where lc.ClassId == courseId join l in db.Lessons on lc.LessonId equals l.Id orderby l.SeqNum select new LessonDTO { Id = l.Id, Name = l.Name, IsActive = lc.IsActive, Description = l.Description, SeqNum = l.SeqNum }).ToList(); classGroup.ExamExists = (from e in db.Exams where e.ClassId == courseId select e).Any(); string role = (from u in db.Users where u.UserName == userName select u.Role).FirstOrDefault(); if (role == "student") { int studentId = LoginController.GetUserID(userName, "student"); foreach (var lesson in classGroup.lessons) { lesson.Result = (from rl in db.ResultInLessons where rl.StudentId == studentId && rl.LessonId == lesson.Id group rl by rl.LessonId into lessonRes select lessonRes.Max(x => x.Result)).FirstOrDefault(); if (lesson.Result >= MIN_RES_TO_PASS) { lesson.IsPassed = true; } else { lesson.IsPassed = false; }; } ; } ; return(classGroup); } catch (Exception ex) { throw ex; }; }