Exemplo n.º 1
0
        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
            }));
        }
Exemplo n.º 2
0
        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
            }));
        }
Exemplo n.º 3
0
 public ExamService(ExamDal examDal)
 {
     _examDal = examDal;
 }
Exemplo n.º 4
0
        public List <Exam> FindAllExam(string sortName, string sortDirection, int userId)
        {
            ExamDal examDAl = new ExamDal();

            return(examDAl.FindAllExam(sortName, sortDirection, userId));
        }
Exemplo n.º 5
0
        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"));
        }
Exemplo n.º 6
0
        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"));
        }
Exemplo n.º 7
0
 public ExamBll()
 {
     examdal = new ExamDal();
 }