// GET: Answer/Details/5
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Answer_tbl answer_tbl = db.Answer_tbl.Find(id);

            if (answer_tbl == null)
            {
                return(HttpNotFound());
            }
            var ex      = db.Exam_tbl.Find(answer_tbl.Exam_ID);
            var maxMark = new List <int>();   // store mark of each question in exam before assign it to viewbag

            maxMark.Add(ex.Question_tbl.Total_Mark.GetValueOrDefault());
            maxMark.Add(ex.Question_tbl1.Total_Mark.GetValueOrDefault());
            maxMark.Add(ex.Question_tbl2.Total_Mark.GetValueOrDefault());
            maxMark.Add(ex.Question_tbl3.Total_Mark.GetValueOrDefault());
            maxMark.Add(ex.Question_tbl4.Total_Mark.GetValueOrDefault());

            if (ex.Type != "Quiz")
            {
                maxMark.Add(ex.Question_tbl5.Total_Mark.GetValueOrDefault());
                maxMark.Add(ex.Question_tbl6.Total_Mark.GetValueOrDefault());
                maxMark.Add(ex.Question_tbl7.Total_Mark.GetValueOrDefault());
                maxMark.Add(ex.Question_tbl8.Total_Mark.GetValueOrDefault());
                maxMark.Add(ex.Question_tbl9.Total_Mark.GetValueOrDefault());
            }
            ViewBag.mm = maxMark;
            return(View(answer_tbl));
        }
Example #2
0
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Exam_tbl exam_tbl = db.Exam_tbl.Find(id);

            if (exam_tbl == null)
            {
                return(HttpNotFound());
            }
            var st = db.Student_tbl.FirstOrDefault(m => m.Email == User.Identity.Name);
            //check if student registered in this course of exam
            var  reg          = db.RegisteredCourses_tbl.Find(st.ID);
            bool isregistered = false;

            if (reg.Course01 == id || reg.Course02 == id || reg.Course03 == id || reg.Course04 == id || reg.Course05 == id || reg.Course06 == id ||
                reg.Course07 == id)
            {
                isregistered = true;
            }
            var pretended_ans_ID = st.ID + id;
            var ans = db.Answer_tbl.FirstOrDefault(m => m.Ans_ID == pretended_ans_ID);
            var res = db.Result_tbl.FirstOrDefault(m => m.StudentID == st.ID && m.Exam_ID == id);
            //calculate the difference in time
            //TimeSpan difftm = exam_tbl.AvailabilityTime.Value - DateTime.Now;
            int diff = DateTime.Compare(exam_tbl.AvailabilityTime.Value, DateTime.Now);

            if (diff < 0 && ans == null && isregistered)
            {
                //create res and ans paper and leave it blank
                var result = new Result_tbl();
                result.Exam_ID   = id;
                result.ID        = "R0" + db.Result_tbl.Count().ToString();
                result.StudentID = st.ID;
                result.CourseID  = exam_tbl.Course_ID;
                result.Title     = exam_tbl.Type;
                //create answer paper
                var Ans = new Answer_tbl()
                {
                    Ans_ID   = st.ID + id,
                    Exam_ID  = id,
                    Stu_Code = st.ID
                };

                Ans.Ans_1 = string.Empty;
                Ans.Ans_2 = string.Empty;
                Ans.Ans_3 = string.Empty;
                Ans.Ans_4 = string.Empty;
                Ans.Ans_5 = string.Empty;

                if (exam_tbl.Type != "Quiz")
                {
                    Ans.Ans_6  = string.Empty;
                    Ans.Ans_7  = string.Empty;
                    Ans.Ans_8  = string.Empty;
                    Ans.Ans_9  = string.Empty;
                    Ans.Ans_10 = string.Empty;
                }
                db.Result_tbl.Add(result);
                db.Answer_tbl.Add(Ans);
                db.SaveChanges();
                return(RedirectToAction("Index", "Result"));
            }
            if (ans != null || res != null || isregistered == false)
            {
                return(RedirectToAction("Index", "Result"));
            }
            return(View(exam_tbl));
        }
Example #3
0
        public ActionResult Details(string id, string Code, string StudentAnsQ_1, string StudentAnsQ_2, string StudentAnsQ_3, string StudentAnsQ_4, string StudentAnsQ_5,
                                    string StudentAnsQ_6, string StudentAnsQ_7, string StudentAnsQ_8, string StudentAnsQ_9, string StudentAnsQ_10)
        {
            var exam = db.Exam_tbl.Find(id);

            if (exam == null)
            {
                return(HttpNotFound());
            }
            var result = new Result_tbl();

            result.Exam_ID = id;
            result.ID      = "R0" + db.Result_tbl.Count().ToString();
            var st = db.Student_tbl.FirstOrDefault(m => m.Email == User.Identity.Name);

            if (st != null)
            {
                result.StudentID = st.ID;
            }
            else
            {
                result.StudentID = Code;
            }

            result.CourseID = exam.Course_ID;
            //change result title in future
            result.Title = exam.Type;
            //create answer paper
            var ans = new Answer_tbl()
            {
                Ans_ID   = st.ID + exam.Exam_ID,
                Exam_ID  = exam.Exam_ID,
                Stu_Code = st.ID
            };

            if (exam.Type == "Quiz")
            {
                //Total mark of exam
                result.Total_Mark  = exam.Question_tbl.Total_Mark;
                result.Total_Mark += exam.Question_tbl1.Total_Mark;
                result.Total_Mark += exam.Question_tbl2.Total_Mark;
                result.Total_Mark += exam.Question_tbl3.Total_Mark;
                result.Total_Mark += exam.Question_tbl4.Total_Mark;
                //Achieved mark of exam
                result.Achieved_Mark = 0;

                ans.Ans_1 = StudentAnsQ_1;
                ans.Ans_2 = StudentAnsQ_2;
                ans.Ans_3 = StudentAnsQ_3;
                ans.Ans_4 = StudentAnsQ_4;
                ans.Ans_5 = StudentAnsQ_5;
            }
            else
            {
                //Total mark of exam
                result.Total_Mark  = exam.Question_tbl.Total_Mark;
                result.Total_Mark += exam.Question_tbl1.Total_Mark;
                result.Total_Mark += exam.Question_tbl2.Total_Mark;
                result.Total_Mark += exam.Question_tbl3.Total_Mark;
                result.Total_Mark += exam.Question_tbl4.Total_Mark;
                result.Total_Mark += exam.Question_tbl5.Total_Mark;
                result.Total_Mark += exam.Question_tbl6.Total_Mark;
                result.Total_Mark += exam.Question_tbl7.Total_Mark;
                result.Total_Mark += exam.Question_tbl8.Total_Mark;
                result.Total_Mark += exam.Question_tbl9.Total_Mark;
                //Achieved mark of exam
                result.Achieved_Mark = 0;

                ans.Ans_1  = StudentAnsQ_1;
                ans.Ans_2  = StudentAnsQ_2;
                ans.Ans_3  = StudentAnsQ_3;
                ans.Ans_4  = StudentAnsQ_4;
                ans.Ans_5  = StudentAnsQ_5;
                ans.Ans_6  = StudentAnsQ_6;
                ans.Ans_7  = StudentAnsQ_7;
                ans.Ans_8  = StudentAnsQ_8;
                ans.Ans_9  = StudentAnsQ_9;
                ans.Ans_10 = StudentAnsQ_10;
            }
            db.Result_tbl.Add(result);
            db.Answer_tbl.Add(ans);
            db.SaveChanges();
            return(RedirectToAction("Index", "Result"));
        }