Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        //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);
            }
        }