protected void btnNext_Click(object sender, EventArgs e) { if (rblAnswers.SelectedIndex != -1) { int quizID = Convert.ToInt32(Request.QueryString["id"]); User currentUser = (User)Session["currentUser"]; //handle question counter int counter = (int)Session["questionCounter"]; counter++; lblQnNum.Text = counter.ToString(); Session["questionCounter"] = counter; //handle remaining questions List <QuizQuestion> remainingQuestions = (List <QuizQuestion>)Session["remainingQuestions"]; remainingQuestions.RemoveAt(0); Session["remainingQuestions"] = remainingQuestions; //handle current question and answer QuizResultHistory currentAnswer = new QuizResultHistory(); QuizResultHistoryDAO qrhDAO = new QuizResultHistoryDAO(); QuizQuestionDAO qqDAO = new QuizQuestionDAO(); QuizQuestion currentQuestion = (QuizQuestion)Session["previousQuestion"]; QuizAnswer currentSelectedAnswer = new QuizAnswer(Convert.ToInt32(rblAnswers.SelectedValue), currentQuestion, rblAnswers.SelectedItem.Text); int attempt = qrhDAO.getAttemptForQuiz(currentQuestion.getQuizQuestionID()); attempt++; currentAnswer.setAttempt(attempt); currentAnswer.setUserID(currentUser.getUserID()); currentAnswer.setQuestion(currentQuestion); currentAnswer.setAnswer(currentSelectedAnswer); currentAnswer.setQuizID(quizID); List <QuizResultHistory> userAnswers = (List <QuizResultHistory>)Session["userAnswers"]; userAnswers.Add(currentAnswer); Session["userAnswers"] = userAnswers; if (remainingQuestions.Count > 0) { //handle displaying next qn QuizQuestion nextQuestion = remainingQuestions[0]; Session["previousQuestion"] = nextQuestion; QuizAnswerDAO qaDAO = new QuizAnswerDAO(); List <QuizAnswer> nextPossibleAnswers = qaDAO.getAllQuizAnswersByQuizQuestionID(nextQuestion.getQuizQuestionID()); lblQuestion.Text = nextQuestion.getQuestion(); rblAnswers.Items.Clear(); foreach (QuizAnswer qa in nextPossibleAnswers) { rblAnswers.Items.Add(new ListItem(qa.getAnswer(), qa.getQuizAnswerID().ToString())); } } if (remainingQuestions.Count == 1) { btnFinish.Visible = true; btnNext.Visible = false; } } }
protected void btnStartQuiz_Click(object sender, EventArgs e) { QuizDAO quizDAO = new QuizDAO(); String id_str = Request.QueryString["id"]; int id_num = int.Parse(id_str); Quiz currentQuiz = quizDAO.getQuizByID(id_num); List <QuizResultHistory> userAnswers = new List <QuizResultHistory>(); Session["userAnswers"] = userAnswers; List <QuizQuestion> remainingQuestions = (List <QuizQuestion>)Session["remainingQuestions"]; QuizQuestion currentQuestion = remainingQuestions[0]; Session["previousQuestion"] = currentQuestion; QuizAnswerDAO qaDAO = new QuizAnswerDAO(); List <QuizAnswer> currentPossibleAnswers = qaDAO.getAllQuizAnswersByQuizQuestionID(currentQuestion.getQuizQuestionID()); Session["timeLeft"] = DateTime.Now.AddSeconds(currentQuiz.getTimeLimit()); lblQuestion.Text = currentQuestion.getQuestion(); rblAnswers.Items.Clear(); foreach (QuizAnswer qa in currentPossibleAnswers) { rblAnswers.Items.Add(new ListItem(qa.getAnswer(), qa.getQuizAnswerID().ToString())); } panelQuiz.Visible = true; panelStartQuiz.Visible = false; if (remainingQuestions.Count == 1) { btnFinish.Visible = true; btnNext.Visible = false; } else { btnFinish.Visible = false; btnNext.Visible = true; } }
protected void btnConfirmSubmit_Click(object sender, EventArgs e) { //to do validation Page.Validate("ValidateFormTwo"); if (!Page.IsValid) { } else { //add the last question List <QuizQuestion> allQuestions = (List <QuizQuestion>)Session["allQuestions"]; QuizQuestion newQuestion = new QuizQuestion(); newQuestion.setQuestion(txtQuizQuestion.Text); QuizAnswer answer1 = new QuizAnswer(); answer1.setAnswer(txtOptionOne.Text); QuizAnswer answer2 = new QuizAnswer(); answer2.setAnswer(txtOptionTwo.Text); QuizAnswer answer3 = new QuizAnswer(); answer3.setAnswer(txtOptionThree.Text); QuizAnswer answer4 = new QuizAnswer(); answer4.setAnswer(txtOptionFour.Text); List <QuizAnswer> allAnswersForLastQn = new List <QuizAnswer>(); allAnswersForLastQn.Add(answer1); allAnswersForLastQn.Add(answer2); allAnswersForLastQn.Add(answer3); allAnswersForLastQn.Add(answer4); newQuestion.setAllAnswers(allAnswersForLastQn); if (ddlCorrectAns.SelectedValue.Equals("1")) { newQuestion.setQuizAnswer(answer1); } else if (ddlCorrectAns.SelectedValue.Equals("2")) { newQuestion.setQuizAnswer(answer2); } else if (ddlCorrectAns.SelectedValue.Equals("3")) { newQuestion.setQuizAnswer(answer3); } else { newQuestion.setQuizAnswer(answer4); } allQuestions.Add(newQuestion); QuizDAO quizDAO = new QuizDAO(); QuizAnswerDAO qaDAO = new QuizAnswerDAO(); QuizQuestionDAO qqDAO = new QuizQuestionDAO(); Course_elearnDAO ceDAO = new Course_elearnDAO(); Course_elearn currentCourse = ceDAO.get_course_by_id(Convert.ToInt32(Request.QueryString["id"])); //create quiz List <string> part1 = (List <string>)Session["createQuiz1"]; Quiz newQuiz = new Quiz(); newQuiz.setTitle(part1[0]); newQuiz.setDescription(part1[1]); newQuiz.setMainCourse(currentCourse); newQuiz.setPassingGrade(Convert.ToInt32(txtNumCorrectAns.Text)); newQuiz.setStatus("active"); if (ddlRandomize.SelectedValue.Equals("y")) { newQuiz.setRandomOrder("y"); } else { newQuiz.setRandomOrder("n"); } newQuiz.setTimeLimit(Convert.ToInt32(txtTimeLimit.Text)); if (rdlAttempt.SelectedValue.Equals("unlimited")) { newQuiz.setMultipleAttempts("y"); newQuiz.setNumberOfAttempts(0); } else { newQuiz.setMultipleAttempts("n"); newQuiz.setNumberOfAttempts(Convert.ToInt32(txtNoOfAttempt.Text)); } newQuiz.setDisplayAnswer(ddlDisplayAnswer.SelectedValue); int quizID = quizDAO.createQuiz(newQuiz); //add prerequisites List <int> prereqIDlist = (List <int>)Session["selectedPrereq"]; foreach (int prereqID in prereqIDlist) { quizDAO.insertPrerequisite(quizID, prereqID); } //create question and answer foreach (QuizQuestion question in allQuestions) { question.setQuiz(quizDAO.getQuizByID(quizID)); int questionID = qqDAO.createQuizQuestion(question); QuizQuestion currentQuestion = qqDAO.getQuizQuestionByID(questionID); List <QuizAnswer> allAnswers = question.getAllAnswers(); foreach (QuizAnswer answer in allAnswers) { answer.setQuizQuestion(currentQuestion); int answerID = qaDAO.createQuizAnswer(answer); if (question.getQuizAnswer().getAnswer().Equals(answer.getAnswer())) { qqDAO.updateCorrectAnswerID(questionID, answerID); } } } //set audit User currentUser = (User)Session["currentUser"]; setAudit(currentUser, "quiz", "create", quizID.ToString(), "quiz title: " + newQuiz.getTitle()); Response.Redirect($"quizSummary.aspx?id={quizID}"); } }