/// <summary>
 /// Deprecated Method for adding a new object to the TN_ExamUserAnswer EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToTN_ExamUserAnswer(TN_ExamUserAnswer tN_ExamUserAnswer)
 {
     base.AddObject("TN_ExamUserAnswer", tN_ExamUserAnswer);
 }
        public ActionResult ConfirmTest(string ok = "")
        {
            if (Session[SessionKey.UserObject] == null || Session[SessionKey.ExamObject] == null)
            {
                return RedirectToAction("Index", "Home");
            }
            var exam = (TN_Exam)Session[SessionKey.ExamObject];
            var user = (TN_User)Session[SessionKey.UserObject];
            var tnExamUser = new TN_ExamUser()
            {
                JoinDate = DateTime.Now,
                ExamID = exam.ID,
                UserID = user.ID,
                Duration = 0,
                CorrectCount = 0
            };
            db.TN_ExamUser.AddObject(tnExamUser);
            db.SaveChanges();

            Session[SessionKey.ExamUserObject] = tnExamUser;

            // Tạo danh sách câu hỏi cho User
            var listQuestionExam = db.TN_ExamQuestion.Where(m => m.ExamID == exam.ID).ToList();
            if (listQuestionExam.Count > 0)
            {

                if (listQuestionExam.Count == tnExamUser.TN_Exam.QuestionCount)
                {
                    foreach (var item in listQuestionExam)
                    {
                        TN_ExamUserAnswer tnExamUserAnswer = new TN_ExamUserAnswer();
                        tnExamUserAnswer.ExamUserID = tnExamUser.ID;
                        tnExamUserAnswer.QuestionID = item.QuestionID;
                        db.TN_ExamUserAnswer.AddObject(tnExamUserAnswer);
                    }
                    db.SaveChanges();
                }
                else
                {
                    var allQuestion = listQuestionExam.Select(m => m.TN_Question).GroupBy(m => m.Type).ToList();
                    var eachTypeQuestions = Math.Floor((double)exam.QuestionCount / (double)allQuestion.Count);
                    var listQuestion = new List<TN_Question>();
                    foreach (var item in allQuestion)
                    {
                        listQuestion.AddRange(GetRandomListQuestion(item.ToList(), (int)eachTypeQuestions));
                    }
                    foreach (var item in listQuestion)
                    {
                        TN_ExamUserAnswer tnExamUserAnswer = new TN_ExamUserAnswer();
                        tnExamUserAnswer.ExamUserID = tnExamUser.ID;
                        tnExamUserAnswer.QuestionID = item.ID;
                        db.TN_ExamUserAnswer.AddObject(tnExamUserAnswer);
                    }
                    db.SaveChanges();
                }
            }

            return RedirectToAction("Test", "Home");
        }
 /// <summary>
 /// Create a new TN_ExamUserAnswer object.
 /// </summary>
 /// <param name="id">Initial value of the ID property.</param>
 /// <param name="examUserID">Initial value of the ExamUserID property.</param>
 /// <param name="questionID">Initial value of the QuestionID property.</param>
 public static TN_ExamUserAnswer CreateTN_ExamUserAnswer(global::System.Int32 id, global::System.Int32 examUserID, global::System.Int32 questionID)
 {
     TN_ExamUserAnswer tN_ExamUserAnswer = new TN_ExamUserAnswer();
     tN_ExamUserAnswer.ID = id;
     tN_ExamUserAnswer.ExamUserID = examUserID;
     tN_ExamUserAnswer.QuestionID = questionID;
     return tN_ExamUserAnswer;
 }