public ActionResult GetExamSchedule() { if (Session["Permission"] == null || Session["Permission"].ToString() != "Student") { return(View("~/Views/Error.cshtml")); } var id = Session["UserID"].ToString(); var examDal = new ExamDal(); var studentDal = new StudentDal(); var exams = new List <Exam>(); var students = (from x in studentDal.Students where x.StudentId.Equals(id) select x).ToList(); for (int i = 0; i < students.Count(); i++) { var t = students[i].CourseName; exams.Add((from x in examDal.Exams where x.CourseName.Equals(t) select x).SingleOrDefault()); } return(View("ShowExamSchedule", new ExamViewModel { Exams = exams })); }
public ActionResult Menu() { if (Session["Permission"] == null || Session["Permission"].ToString() != "FaAdmin") { return(View("~/Views/Error.cshtml")); } var courseDal = new CourseDal(); var examDal = new ExamDal(); var courses = (from x in courseDal.Courses select x).ToList(); var exams = (from x in examDal.Exams select x).ToList(); var coursesName = (from x in courseDal.Courses select x.CourseName).ToList(); if (Request.Form["AddNewCourse"] != null) { var userDal = new UserDal(); var lecturers = (from x in userDal.Users where x.PermissionType.Equals("Lecturer") select x.ID).ToList(); Session["ListLecturers"] = lecturers; return(View("AddNewCourse")); } if (Request.Form["CourseList"] != null) { Session["ListCoursesName"] = coursesName; return(View("ChangeStudentGrade")); } if (Request.Form["AssignStudents"] != null) { var userDal = new UserDal(); var students = (from x in userDal.Users where x.PermissionType.Equals("Student") select x).ToList(); Session["ListCourses"] = coursesName; return(View("AssignStudents", new UserViewModel { Users = students })); } if (Request.Form["ChangeSchedule"] != null) { Session["ListCourses"] = coursesName; return(View("ChangeSchedule", new CoursesExamsViewModel { Courses = courses, Exams = exams })); } return(View("FaAdminMenu", new CourseViewModel { Courses = courses })); }
public ExamService(ExamDal examDal) { _examDal = examDal; }
public List <Exam> FindAllExam(string sortName, string sortDirection, int userId) { ExamDal examDAl = new ExamDal(); return(examDAl.FindAllExam(sortName, sortDirection, userId)); }
public ActionResult AddCourse() { if (Session["Permission"] == null || Session["Permission"].ToString() != "FaAdmin") { return(View("~/Views/Error.cshtml")); } //Add course var cname = Request.Form["CourseName"]; var lid = Request.Form["SelectedLecturer"]; var day = Request.Form["Day"]; int shour = Convert.ToInt32(Request.Form["StartHour"]), fhour = Convert.ToInt32(Request.Form["FinishHour"]); if (fhour <= shour) { return(RedirectToAction("Menu")); } var classroom = Request.Form["Classroom"]; var courseDal = new CourseDal(); var course = (from x in courseDal.Courses where x.CourseName.Equals(cname) select x.CourseName).SingleOrDefault(); if (course != null) { TempData["Error"] = "Course " + course + " already exists in the system"; return(RedirectToAction("Menu")); //course already exist } var schedule = (from x in courseDal.Courses where x.Day.Equals(day) && x.Classroom.Equals(classroom) select x).ToList(); if (IsClashingCourse(shour, fhour, schedule)) { return(RedirectToAction("Menu")); //schedule is occupied for classroom } var scheduleLecturer = (from x in courseDal.Courses where x.Day.Equals(day) && x.LecturerID.Equals(lid) select x).ToList(); if (IsClashingCourse(shour, fhour, scheduleLecturer)) { return(RedirectToAction("Menu")); //lecturer is occupied for lecturer } SqlConnection conn = new SqlConnection("Data Source=DESKTOP-GH6DGFT\\AVIEL;Initial Catalog=sce_website;Integrated Security=True"); conn.Open(); var query = "INSERT INTO tblCourses " + "(CourseName, Day, Classroom, LecturerID, StartHour, FinishHour) " + "VALUES (@cname, @day, @classroom, @lid, @shour, @fhour)"; SqlCommand command = new SqlCommand(query, conn); command.Parameters.Add("@cname", SqlDbType.NVarChar, 50).Value = cname; command.Parameters.Add("@day", SqlDbType.NVarChar, 50).Value = day; command.Parameters.Add("@shour", SqlDbType.Int).Value = shour; command.Parameters.Add("@fhour", SqlDbType.Int).Value = fhour; command.Parameters.Add("@classroom", SqlDbType.NVarChar, 50).Value = classroom; command.Parameters.Add("@lid", SqlDbType.NVarChar, 50).Value = lid; //Add exam schedule to course string ashour = Request.Form["ExamAStartHour"], afhour = Request.Form["ExamAFinishHour"], bshour = Request.Form["ExamBStartHour"], bfhour = Request.Form["ExamBFinishHour"]; int astarthour = Convert.ToInt32(ashour), afinishhour = Convert.ToInt32(afhour); int bstarthour = Convert.ToInt32(bshour), bfinishhour = Convert.ToInt32(bfhour); var examDal = new ExamDal(); if (astarthour >= afinishhour) { TempData["Error"] = "Start hour cannot be after finish hour."; return(RedirectToAction("Menu")); } if (bstarthour >= bfinishhour) { TempData["Error"] = "Start hour cannot be after finish hour."; return(RedirectToAction("Menu")); } var examADate = Convert.ToDateTime(Request.Form["ADate"]); var examBDate = Convert.ToDateTime(Request.Form["BDate"]); if (DateTime.Compare(examADate, DateTime.Now) <= 0 || DateTime.Compare(examBDate, DateTime.Now) <= 0 || DateTime.Compare(examADate, examBDate) >= 0) { TempData["Error"] = "No time-machines invented yet."; return(RedirectToAction("Menu")); } var exams = (from x in examDal.Exams where x.Classroom.Equals(classroom) && !x.CourseName.Equals(cname) select x).ToList(); if (IsClashingExam(astarthour, afinishhour, examADate, exams) || IsClashingExam(bstarthour, bfinishhour, examBDate, exams)) { TempData["Error"] = "Hours clashing with other exam."; return(RedirectToAction("Menu")); } var addExamQ = "INSERT INTO tblExams " + "(CourseName, Classroom, ExamADate, ExamBDate, ExamAStart, ExamAFinish, ExamBStart, ExamBFinish) " + "VALUES (@cname, @classroom, @adate, @bdate, @astart, @afinish, @bstart, @bfinish)"; SqlCommand examCommand = new SqlCommand(addExamQ, conn); examCommand.Parameters.Add("@cname", SqlDbType.NVarChar, 50).Value = cname; examCommand.Parameters.Add("@adate", SqlDbType.Date).Value = examADate; examCommand.Parameters.Add("@bdate", SqlDbType.Date).Value = examBDate; examCommand.Parameters.Add("@astart", SqlDbType.Int).Value = astarthour; examCommand.Parameters.Add("@afinish", SqlDbType.Int).Value = afinishhour; examCommand.Parameters.Add("@bstart", SqlDbType.Int).Value = bstarthour; examCommand.Parameters.Add("@bfinish", SqlDbType.Int).Value = bfinishhour; examCommand.Parameters.Add("@classroom", SqlDbType.NVarChar, 50).Value = classroom; //assign course to lecturer var addCourseToLecturer = "INSERT INTO tblLecturers " + "(LecturerID, CourseName) " + "VALUES (@lid, @cname)"; SqlCommand lecturerCommand = new SqlCommand(addCourseToLecturer, conn); lecturerCommand.Parameters.Add("@lid", SqlDbType.NVarChar, 50).Value = lid; lecturerCommand.Parameters.Add("@cname", SqlDbType.NVarChar, 50).Value = cname; command.ExecuteNonQuery(); examCommand.ExecuteNonQuery(); lecturerCommand.ExecuteNonQuery(); conn.Close(); TempData["Success"] = "Course " + cname + " added successfully"; return(RedirectToAction("Menu")); }
public ActionResult ChangeExamSchedule() { if (Session["Permission"] == null || Session["Permission"].ToString() != "FaAdmin") { return(View("~/Views/Error.cshtml")); } string exam = Request.Form["SelectedExam"], classroom = Request.Form["Classroom"], cname = Request.Form["SelectedCourse"], shour = Request.Form["StartHour"], fhour = Request.Form["FinishHour"]; var examDal = new ExamDal(); if (classroom == null || shour == null || fhour == null || exam == null) { TempData["Error"] = "The input is empty!"; return(RedirectToAction("Menu")); } int starthour = Convert.ToInt32(shour), finishhour = Convert.ToInt32(fhour); if (starthour >= finishhour) { TempData["Error"] = "Start hour cannot be after finish hour."; return(RedirectToAction("Menu")); } var date = Convert.ToDateTime(Request.Form["Date"]); if (DateTime.Compare(date, DateTime.Now) <= 0) { TempData["Error"] = "No time-machines invented yet."; return(RedirectToAction("Menu")); } if (exam == "ExamA") { var examB = (from x in examDal.Exams where x.CourseName.Equals(cname) select x.ExamBDate).SingleOrDefault(); if (examB == null || DateTime.Compare(date, examB) >= 0) { TempData["Error"] = "Exam A cannot be after Exam B."; return(RedirectToAction("Menu")); } } if (exam == "ExamB") { var examA = (from x in examDal.Exams where x.CourseName.Equals(cname) select x.ExamADate).SingleOrDefault(); if (examA == null || DateTime.Compare(date, examA) <= 0) { TempData["Error"] = "Exam B cannot be before exam A."; return(RedirectToAction("Menu")); } } var exams = (from x in examDal.Exams where x.Classroom.Equals(classroom) && !x.CourseName.Equals(cname) select x).ToList(); if (IsClashingExam(starthour, finishhour, date, exams)) { TempData["Error"] = "Hours clashing with other exam."; return(RedirectToAction("Menu")); } SqlConnection conn = new SqlConnection("Data Source=DESKTOP-GH6DGFT\\AVIEL;Initial Catalog=sce_website;Integrated Security=True"); conn.Open(); var query = "UPDATE tblExams " + "SET Classroom = @classroom, " + exam + "Date = @adate, " + exam + "Start = @shour, " + exam + "Finish = @fhour " + "WHERE CourseName = @cname"; SqlCommand command = new SqlCommand(query, conn); command.Parameters.Add("@cname", SqlDbType.NVarChar, 50).Value = cname; command.Parameters.Add("@adate", SqlDbType.Date).Value = date; command.Parameters.Add("@shour", SqlDbType.Int).Value = shour; command.Parameters.Add("@fhour", SqlDbType.Int).Value = fhour; command.Parameters.Add("@classroom", SqlDbType.NVarChar, 50).Value = classroom; command.ExecuteNonQuery(); conn.Close(); TempData["Success"] = "Exam schedule changed successfully."; return(RedirectToAction("Menu")); }
public ExamBll() { examdal = new ExamDal(); }