public ActionResult CoursesStudentsGrades() { /* Show all data */ /* check if user had logged in */ if (Session["ID"] == null || Session["password"] == null || Session["type"] == null) { return(RedirectToAction("Login", "Login")); } /* check if user is lecturer type */ else if (!Session["type"].Equals("Faculty")) { return(RedirectToAction("Home", Session["type"].ToString())); } CoursesStudentsGrades viewobj = new CoursesStudentsGrades(); viewobj.courses = new List <Course>(); viewobj.users = new List <User>(); viewobj.grades = new List <Grade>(); using (CoursesDal coursesDb = new CoursesDal()) using (UsersDal usersDb = new UsersDal()) using (GradesDal gradesDb = new GradesDal()) { /* get all courses */ var courses = (from row in coursesDb.Courses orderby row.courseId select row).ToList(); foreach (Course x in courses) { viewobj.courses.Add(x); } /* get all students */ var users = (from row in usersDb.Users where row.type.Equals("Student") select row).ToList(); foreach (User x in users) { viewobj.users.Add(x); } /* get all grades */ var grades = (from row in gradesDb.Grades select row); foreach (Grade x in grades) { viewobj.grades.Add(x); } return(View(viewobj)); } }
public ActionResult Grades() { /* check if user had logged in */ if (Session["ID"] == null || Session["password"] == null || Session["type"] == null) { return(RedirectToAction("Login", "Login")); } /* check if user is student type */ else if (!Session["type"].Equals("Student")) { return(RedirectToAction("Home", Session["type"].ToString())); } /* get student grades */ using (GradesDal gradesDb = new GradesDal()) { var id = Session["ID"].ToString(); /* get student courses he took moed B */ var Bgrades = (from row in gradesDb.Grades where row.ID.Equals(id) && row.moed == "B" select row).ToList(); /* get moed B course id */ var moedBCourses = (from row in gradesDb.Grades where row.ID.Equals(id) && row.moed == "B" select row.courseId).ToList(); /* get all moad A grades from courses student didnt take moed B */ var Agrades = (from row in gradesDb.Grades where row.ID.Equals(id) && row.moed == "A" && !moedBCourses.Contains(row.courseId) select row).ToList(); /* create grade list model */ GradeList studenGrades = new GradeList(); studenGrades.grades = new List <Grade>(); foreach (Grade x in Bgrades) { studenGrades.grades.Add(x); } foreach (Grade x in Agrades) { studenGrades.grades.Add(x); } return(View(studenGrades)); } }
public ActionResult InsertGrade() { Grade grade = new Grade(); grade.courseId = Request["courseId"].ToString(); grade.courseName = Request["courseName"].ToString(); grade.moed = Request["moed"].ToString(); grade.grade = Int32.Parse(Request["grade"]); grade.ID = Request["ID"].ToString(); var id = Session["ID"].ToString(); using (CoursesDal coursesDb = new CoursesDal()) using (ExamsDal exmaDb = new ExamsDal()) using (UsersDal usersDb = new UsersDal()) using (GradesDal gradesDb = new GradesDal()) using (CourseParticipantsDal courseParticipantDb = new CourseParticipantsDal()) { /* check if lecturer passes this course */ var courseId = coursesDb.Courses.Where(Course => Course.courseId.Equals(grade.courseId) && Course.lecturer.Equals(id)).FirstOrDefault(); if (courseId == null) { TempData["msg"] = "Invalid course ID"; return(View("InsertGrades", grade)); } /* check course name is the same in courses */ var courseName = coursesDb.Courses.Where(Course => Course.courseId.Equals(grade.courseId) && Course.courseName.Equals(grade.courseName) && Course.lecturer.Equals(id)).FirstOrDefault(); if (courseName == null) { TempData["msg"] = "Invalid course Name"; return(View("InsertGrades", grade)); } /* check exam date has passed */ var exam = (from row in exmaDb.Exams where row.courseId.Equals(courseId.courseId) && row.moed.Equals(grade.moed) select row).FirstOrDefault(); if (exam == null) { TempData["msg"] = "No such exam in system"; return(View("InsertGrades", grade)); } if (DateTime.Compare(exam.date + exam.endTime, DateTime.Now) > 0) { TempData["msg"] = "Exam did not occur yet"; return(View("InsertGrades", grade)); } /* check if student exist */ var student = (from row in usersDb.Users where row.ID.Equals(grade.ID) select row).FirstOrDefault(); if (exam == null) { TempData["msg"] = "Student doesnt exist"; return(View("InsertGrades", grade)); } /* check if student takes this course */ var studentTakesCourse = (from row in courseParticipantDb.CourseParticipants where row.ID.Equals(grade.ID) && row.courseId.Equals(grade.courseId) select row).FirstOrDefault(); if (studentTakesCourse == null) { TempData["msg"] = "Student doesnt take this course"; return(View("InsertGrades", grade)); } /* check if student has this course if true update else insert */ var gradeInDb = (from row in gradesDb.Grades where row.courseId.Equals(grade.courseId) && row.moed.Equals(grade.moed) && row.ID.Equals(grade.ID) select row).FirstOrDefault(); if (gradeInDb != null) { gradeInDb.grade = grade.grade; gradesDb.SaveChanges(); } else { gradesDb.Grades.Add(grade); gradesDb.SaveChanges(); } } TempData["goodMsg"] = "Inserted\\updated grade"; /* redirect with succsees message */ return(View("InsertGrades", new Grade())); }
public ActionResult Grades(string courseIDInput = "") { /* check if user had logged in */ if (Session["ID"] == null || Session["password"] == null || Session["type"] == null) { return(RedirectToAction("Login", "Login")); } /* check if user is lecturer type */ else if (!Session["type"].Equals("Lecturer")) { return(RedirectToAction("Home", Session["type"].ToString())); } using (CoursesDal coursesDb = new CoursesDal()) using (GradesDal gradesDb = new GradesDal()) { var id = Session["ID"].ToString(); var courseId = coursesDb.Courses.Where(Course => Course.courseId.Equals(courseIDInput) && Course.lecturer.Equals(id)).FirstOrDefault(); /* get all lecturer courses */ var courses = (from row in coursesDb.Courses where row.lecturer.Equals(id) select row).ToList(); /* creae grades and courses model */ CoursesAndGrades obj = new CoursesAndGrades(); /* add courses to modal */ obj.courses = new List <Course>(); foreach (Course x in courses) { obj.courses.Add(x); } /* if course isnt empty */ if (courseId != null) { /* get all grades in the course */ var studentGrades = (from row in gradesDb.Grades where row.courseId.Equals(courseId.courseId) select row).ToList(); obj.grades = new List <Grade>(); foreach (Grade x in studentGrades) { obj.grades.Add(x); } return(View(obj)); } /* course id doesnt exist and course is not empty */ else if (courseIDInput != "") { /* create empty list of grades and error message */ TempData["msg"] = "Invalid course ID"; obj.grades = new List <Grade>(); return(View(obj)); } /* course id doesnt exist and course is empty */ else { /* create empty list of stuendts */ obj.grades = new List <Grade>(); return(View(obj)); } } }
public ActionResult SubmitParticipant(CourseParticipant courseParticipant) { if (ModelState.IsValid) { /* add course to student */ var id = Session["ID"].ToString(); /* change or add grade */ using (CoursesDal coursesDb = new CoursesDal()) using (ExamsDal exmaDb = new ExamsDal()) using (UsersDal usersDb = new UsersDal()) using (GradesDal gradesDb = new GradesDal()) using (CourseParticipantsDal courseParticipantDb = new CourseParticipantsDal()) { /* check course exist */ var courseId = coursesDb.Courses.Where(Course => Course.courseId.Equals(courseParticipant.courseId)).FirstOrDefault(); if (courseId == null) { TempData["msg"] = "Invalid course ID"; return(View("ManageCourseParticipants", courseParticipant)); } /* check if student exist */ var student = (from row in usersDb.Users where row.ID.Equals(courseParticipant.ID) && row.type.Equals("Student") select row).FirstOrDefault(); if (student == null) { TempData["msg"] = "Student doesnt exist"; return(View("ManageCourseParticipants", courseParticipant)); } /* check if student takes this course */ var studentTakesCourse = (from row in courseParticipantDb.CourseParticipants where row.ID.Equals(courseParticipant.ID) && row.courseId.Equals(courseParticipant.courseId) select row).FirstOrDefault(); if (studentTakesCourse != null) { TempData["msg"] = "Student takes this course"; return(View("ManageCourseParticipants", courseParticipant)); } /* course time doesnt clashes with student courses */ var studentCourses = (from row in courseParticipantDb.CourseParticipants where row.ID.Equals(courseParticipant.ID) select row.courseId).ToList(); var courses = (from row in coursesDb.Courses where studentCourses.Contains(row.courseId) select row).ToList(); foreach (Course x in courses) { if (x.startTime < courseId.endTime && courseId.startTime < x.endTime && x.day.Equals(courseId.day)) { TempData["msg"] = "Course time clashes with student schedule"; return(View("ManageCourseParticipants", courseParticipant)); } } /* add course to student */ courseParticipantDb.CourseParticipants.Add(courseParticipant); courseParticipantDb.SaveChanges(); } TempData["goodMsg"] = "Inserted\\updated grade"; /* redirect with succsees message */ return(View("ManageCourseParticipants", new CourseParticipant())); } else { return(View("ManageCourseParticipants", courseParticipant)); } }
public ActionResult SubmitSchedule(Course course) { /* change course schedule */ if (ModelState.IsValid) { var id = Session["ID"].ToString(); /* change schedule grade */ using (CoursesDal coursesDb = new CoursesDal()) using (ExamsDal exmaDb = new ExamsDal()) using (UsersDal usersDb = new UsersDal()) using (GradesDal gradesDb = new GradesDal()) using (CourseParticipantsDal courseParticipantDb = new CourseParticipantsDal()) { /* check if course exist */ var courseId = coursesDb.Courses.Where(Course => Course.courseId.Equals(course.courseId)).FirstOrDefault(); if (courseId != null) { /* check if name is for course id */ /* check course name is the same in courses */ var courseName = coursesDb.Courses.Where(Course => Course.courseId.Equals(course.courseId) && Course.courseName.Equals(course.courseName)).FirstOrDefault(); if (courseName == null) { TempData["msg"] = "Invalid course Name"; return(View("ManageCourseSchedule", course)); } /* check lecturer exist */ var Lecturer = (from row in usersDb.Users where row.ID.Equals(course.lecturer) && row.type.Equals("Lecturer") select row).FirstOrDefault(); if (Lecturer == null) { TempData["msg"] = "Lecturer doesnt exist"; return(View("ManageCourseSchedule", course)); } /* check start time is before end time */ if (course.startTime >= course.endTime) { TempData["msg"] = "Course end time must be bigger than course start time"; return(View("ManageCourseSchedule", course)); } /* new time doesnt clash with students and lecturer schedule */ /* find students that take the course */ var studentThatTakeCourse = (from row in courseParticipantDb.CourseParticipants where row.courseId.Equals(course.courseId) select row.ID).ToList(); /* find all other courses students take */ var studentCourses = (from row in courseParticipantDb.CourseParticipants where studentThatTakeCourse.Contains(row.ID) && !row.courseId.Equals(course.courseId) select row.courseId).ToList(); /* get courses schedule + lecturer courses schedule */ var courses = (from row in coursesDb.Courses where studentCourses.Contains(row.courseId) || row.lecturer.Equals(course.lecturer) && !row.courseId.Equals(course.courseId) select row).ToList(); /* check no clashs between courses */ foreach (Course x in courses) { if (x.startTime < course.endTime && course.startTime < x.endTime && x.day.Equals(course.day)) { TempData["msg"] = "Course time clashes with student or lecturer schedule"; return(View("ManageCourseSchedule", course)); } } /* get all course with same class and check time doesnt clash */ courses = (from row in coursesDb.Courses where row.className.Equals(course.className) && !row.courseId.Equals(course.courseId) select row).ToList(); foreach (Course x in courses) { if (x.startTime < course.endTime && course.startTime < x.endTime && x.day.Equals(course.day)) { TempData["msg"] = "Course class clashes with other courses"; return(View("ManageCourseSchedule", course)); } } courseId.courseId = course.courseId; courseId.courseName = course.courseName; courseId.startTime = course.startTime; courseId.endTime = course.endTime; courseId.day = course.day; courseId.className = course.className; courseId.lecturer = course.lecturer; coursesDb.SaveChanges(); TempData["goodMsg"] = "Inserted\\updated course"; /* redirect with succsees message */ return(View("ManageCourseSchedule", new Course())); } /* if course doesnt exist */ else { /* check lecturer exist */ var Lecturer = (from row in usersDb.Users where row.ID.Equals(course.lecturer) && row.type.Equals("Lecturer") select row).FirstOrDefault(); if (Lecturer == null) { TempData["msg"] = "Lecturer doesnt exist"; return(View("ManageCourseSchedule", course)); } /* check start time is before end time */ if (course.startTime >= course.endTime) { TempData["msg"] = "Course end time must be bigger than course start time"; return(View("ManageCourseSchedule", course)); } /* new time doesnt clash with lecturers schedule */ /* get lecturer courses schedule */ var courses = (from row in coursesDb.Courses where row.lecturer.Equals(course.lecturer) select row).ToList(); /* check no clashs between courses */ foreach (Course x in courses) { if (x.startTime < course.endTime && course.startTime < x.endTime && x.day.Equals(course.day)) { TempData["msg"] = "Course time clashes with lecturer schedule"; return(View("ManageCourseSchedule", course)); } } /* get all course with same class and check time doesnt clash */ courses = (from row in coursesDb.Courses where row.className.Equals(course.className) select row).ToList(); foreach (Course x in courses) { if (x.startTime < course.endTime && course.startTime < x.endTime && x.day.Equals(course.day)) { TempData["msg"] = "Course class clashes with other courses"; return(View("ManageCourseSchedule", course)); } } coursesDb.Courses.Add(course); coursesDb.SaveChanges(); TempData["goodMsg"] = "Inserted\\updated course"; /* redirect with succsees message */ return(View("ManageCourseSchedule", new Course())); } } } else { return(View("ManageCourseSchedule", course)); } }