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"));
        }