public ActionResult ResultDetail(int?id) { if (CheckSession() == false) { SetAlert("Truy cập không hợp lệ.", "error"); return(Redirect("/")); } var _result = new TestResultDetailDAO().GetById(id); return(View(_result)); }
public ActionResult HistoryExams(int?id, string searchString, int page = 1, int pageSize = 10) { if (CheckSession(id) == false) { SetAlert("Truy cập không hợp lệ.", "error"); return(Redirect("/")); } var _user = new UserDAO().GetUserById(id); var listTestResult = new TestResultDetailDAO().GetAllTestResultPageList(_user, searchString, page = 1, pageSize = 10); return(View(listTestResult)); }
public ActionResult StartTheTest(Test test) { var _test = new TestDAO().GetTestByCodeTest(test.CodeTest, test.ExamID); var _testResultDAO = new TestResultDetailDAO(); var _testResult = new TestResultDetail(); if (_test != null) { _test.UserAnswer = test.UserAnswer; _test.ExamID = test.ExamID; _test.CodeTest = test.CodeTest; } var _session = Session[ConstantVariable.USER_SESSION] as UserLogin; if (_session != null) { _testResult.UserID = _session.UserID; } _testResult.TestID = _test.Id; _testResult.ExamID = _test.ExamID; int _answerCorrectNum = 0; int _answerWrongNum = 0; int _answerIgnoredNum = 0; var listQuiz = new TestDAO().GetAllQuiz(_test.Id); if (_test.UserAnswer == null || _test.UserAnswer.Count <= 0) { _answerIgnoredNum = listQuiz.Count; } else { for (int i = 0; i < _test.UserAnswer.Count; i++) { if (listQuiz[i].KeyAnswer == _test.UserAnswer[i]) { _answerCorrectNum++; } else { _answerWrongNum++; } } _answerIgnoredNum = listQuiz.Count - (_answerCorrectNum + _answerWrongNum); } _testResult.Score = _answerCorrectNum * (_test.ScoreLadder.Score / _test.NumberOfQuestions); _testResult.NumberOfWrong = _answerWrongNum; _testResult.NumberOfCorrect = _answerCorrectNum; _testResult.NumberOfIgnored = _answerIgnoredNum; var _countTimeToTake = new TestResultDetailDAO().GetAll(_session.UserID, _test.ExamID); if (_countTimeToTake == null) { _testResult.TimeToTake = 0; } else { _testResult.TimeToTake = _countTimeToTake.Count + 1; } _testResult.ActualTestDate = DateTime.Now; _testResult.ActualStartTime = null; _testResult.ActualEndTime = DateTime.Now.TimeOfDay; for (int i = 0; i < listQuiz.Count; i++) { if (i != listQuiz.Count - 1) { _testResult.UserAnswer += _test.UserAnswer[i] + ","; } else { _testResult.UserAnswer += _test.UserAnswer[i]; } } int _id = _testResultDAO.Insert(_testResult); // Insert if (_id > 0) { var _testDb = new TestDAO().GetTestById(_testResult.TestID); new SystemLogDAO().Insert("Người dùng thi online [Kỳ thi: " + _testDb.Exam.Titile + "] [Môn thi: " + _testDb.Exam.Subject.Name + "] [Mã đề: " + _testDb.CodeTest + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress()); return(Redirect("/admin/exams/resultdetail/" + _id)); } return(Redirect("/")); }
public ActionResult StartTheTest(int?id) { var _exam = new ExamDAO().GetExamById(id); var _session = Session[ConstantVariable.USER_SESSION] as UserLogin; if (_session == null) { SetAlert("Vui lòng đăng nhập để bắt đầu thi", "error"); return(Redirect("/")); } else { var _user = new UserDAO().GetUserById(_session.UserID); var listClass = new ClassDAO().GetAllByExams(_exam.Id); if (!listClass.Exists(x => x.Id == _user.ClassID)) { SetAlert("Bạn không phải là thí sinh của kỳ thi này.", "error"); return(Redirect("/")); } } // Kiểm tra số lượt làm bài var _timeToTakeUser = new TestResultDetailDAO().GetTimeToTake(_session.UserID, _exam.Id); if (_timeToTakeUser >= _exam.NumberOfTurns) { SetAlert("Bạn đã hết lượt làm bài của kỳ thi này.", "error"); return(Redirect("/")); } if (_exam.ToDate < DateTime.Now) { SetAlert("Kỳ thi đã hết hạn.", "error"); _exam.Status = false; new ExamDAO().UpdateStatus(_exam); return(Redirect("/")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (_exam == null) { return(HttpNotFound()); } int[] _codeTestID = new int[_exam.Tests.Count]; // Danh sách các mã đề thi của kỳ thi var _tests = _exam.Tests.ToList(); for (int i = 0; i < _exam.Tests.Count; i++) { _codeTestID[i] = (int)_tests[i].CodeTest; } if (_codeTestID != null) { Random random = new Random(); int selectCodeTest = random.Next(0, _codeTestID.Length); // Chọn ngẫu nhiên một mã đề return(View(_tests[selectCodeTest])); } return(View(_exam)); }