public ActionResult showExam(short id) { if (Session["username"] != null && Session["role"].Equals("student")) { var studentId = (short)Session["id"]; var examTest = _context.exam_gradeDb.Where(e => e.student_id == studentId && e.course_id == id).FirstOrDefault(); if (examTest == null) { var questions = _context.questionDb.Where(q => q.CourseId == id).ToList(); CourseModel course = _context.courseDb.Single(c => c.id == id); var viewModel = new CourseQuestionsViewModel { course = course, questions = questions }; ExamModel exam = new ExamModel(); exam.course_id = id; exam.student_id = (short)Session["id"]; exam.grade = 0; _context.exam_gradeDb.Add(exam); _context.SaveChanges(); return(View(viewModel)); } else { return(RedirectToAction("showGrade", new RouteValueDictionary(new { Controller = "Student", Action = "showGrade", id = id }))); } } return(RedirectToAction("Login", "Home")); }
public ActionResult calculateGrade(CourseQuestionsViewModel viewModel) { if (Session["username"] != null && Session["role"].Equals("student")) { var studentId = (short)Session["id"]; var exam = _context.exam_gradeDb.Single(e => e.student_id == studentId && e.course_id == viewModel.course.id); var examQuestions = _context.questionDb.Where(e => e.CourseId == viewModel.course.id).ToList(); float studentGrade = 0; for (int i = 0; i < viewModel.questions.Count(); i++) { if (viewModel.questions[i].selectChoice != null && viewModel.questions[i].selectChoice.Equals(examQuestions[i].rightAnswer)) { studentGrade = studentGrade + (float)(100.0 / examQuestions.Count()); } } float studentGrade1 = (float)Math.Round(studentGrade * 100f) / 100f; exam.grade = studentGrade1; _context.SaveChanges(); return(RedirectToAction("showGrade", new RouteValueDictionary(new { Controller = "Student", Action = "showGrade", id = viewModel.course.id }))); } return(RedirectToAction("Login", "Home")); }
public ActionResult editExam(short id) { if (Session["username"] != null && Session["role"].Equals("professor")) { var questions = _context.questionDb.Where(q => q.CourseId == id).ToList(); CourseModel course = _context.courseDb.Single(c => c.id == id); var viewModel = new CourseQuestionsViewModel { course = course, questions = questions }; return(View(viewModel)); } return(RedirectToAction("login", "Home")); }