public ActionResult Demarrer(int id) { Models.Quiz quiz = db.Quizs.Find(id); Utilisateur candidat = (Utilisateur)Session["user"]; QuizTest quizTest = new QuizTest(DateTime.Now, quiz, candidat, 0); return(View(quizTest)); }
//Méthode qui vérifie la réponse public void CheckResponse(QuizTest quizTest, QuizQuestion qst, string choiceStr) { if (!qst.IsMultiple) //1 réponse possible { int choice = Convert.ToInt32(choiceStr); if (choice < 1 || choice > qst.Reponses.Count) { throw new Exception("Erreur: le choix doit être entre 1 et " + qst.Reponses.Count); } if (qst.Reponses[choice - 1].IsCorrect) { quizTest.Score++; } quizTest.UserReponses.Add(qst, new List <QuizReponse>() { qst.Reponses[choice - 1] }); } else //plusieurs réponses possibles 1,3 { string[] choices = choiceStr.Split(','); List <QuizReponse> userResp = new List <QuizReponse>(); foreach (string choice in choices) { int choiceX = Convert.ToInt32(choice); if (choiceX < 1 || choiceX > qst.Reponses.Count) { throw new Exception("Erreur: le choix doit être entre 1 et " + qst.Reponses.Count); } if (qst.Reponses[choiceX - 1].IsCorrect) { quizTest.Score++; } else { quizTest.Score--; } userResp.Add(qst.Reponses[choiceX - 1]); } quizTest.UserReponses.Add(qst, userResp); } }