void EffacerSousPopulation() { Questions.Clear(); Reponses.Clear(); PollAnswerID.Clear(); QuestionnairePublication.PersonnesSousPopulation = new PersonneCollection(); }
void EffacerSousPopulation() { Questions.Clear(); Reponses.Clear(); PollAnswerID.Clear(); PersonnesOntReponduATout.Clear(); QuestionnaireControlStatAll.PersonnesSousPopulation = new PersonneCollection(); }
public static void InsertReponse(Reponses reponse) { using (var context = new QCMAppBDDEntities()) { context.Reponses.Add(reponse); context.SaveChanges(); } }
// POST: odata/Reponses public async Task <IHttpActionResult> Post(Reponses reponses) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Reponses.Add(reponses); await db.SaveChangesAsync(); return(Created(reponses)); }
//CRUD Create / Red / Unreaad / Delete(+Read All) public static List <Reponses> FindAll(int IdQues) { List <Reponses> reponses = new List <Reponses>(); //1.Connexion à une base de données string chaineDeConnexion = Properties.Settings.Default.ConnexionString; MySqlConnection connexion = new MySqlConnection(chaineDeConnexion); MySqlCommand commande = null; MySqlDataReader dataReader = null; try { connexion.Open(); //2.Préparer envoie d'une commande Mysql string requete = "SELECT text, correct, questionId FROM t_reponse WHERE questionId" + 1;//IdQues; commande = new MySqlCommand(requete, connexion);; //3.Envoyer la commande dataReader = commande.ExecuteReader(); while (dataReader.Read()) { //5.Construir l'objet à reenvoyer Reponses repon = new Reponses() { Text = dataReader["text"].ToString(), EstCorrecte = (bool)dataReader["correct"], Id = (int)dataReader["questionId"] }; reponses.Add(repon); } } catch (Exception ex) { log.Error(ex.Message); } finally { //Fermer la connexion dataReader?.Close(); connexion?.Dispose(); connexion.Close(); } return(reponses); }
// DELETE: odata/Reponses(5) public async Task <IHttpActionResult> Delete([FromODataUri] int key) { Reponses reponses = await db.Reponses.FindAsync(key); if (reponses == null) { return(NotFound()); } db.Reponses.Remove(reponses); await db.SaveChangesAsync(); return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult Create(int id, FormCollection collection) { var question = _questionService.GetQuestion(id).MapToQuestion(); ViewBag.Question = question; List <Reponses> reponses = new List <Reponses>(); //récupération des 4 choix et l'ajouter dans liste "reponses" for (int i = 0; i <= 3; i++) { Reponses reponse = new Reponses { QuestionId = question.QuestionId, Content = collection.GetValue("[" + i + "].Reponse" + reponses[i].ReponseId + i).AttemptedValue, TrueReponse = collection.GetValue("[" + i + "].BonneReponse" + reponses[i].ReponseId + i).AttemptedValue == "false" ? false : true //prend false si pas cocher }; if (reponse.Content != "") { reponses.Add(reponse); } } /* /!\ impossible d'utiliser la méthode Edit du serviceQuestion, car le "ViewModel" et le "Mapping" ne prend ** pas en compte la liste des réponses */ //using (var db = new FilRougeDBContext()) //{ // var questionAddReponse = db.Questions.Find(id); // questionAddReponse.Reponses = reponses; // ajout de la liste des réponses à la question // int nbRes = db.SaveChanges(); // if (nbRes > 0) // { // return RedirectToAction("Questions", "Questions"); // } //} var nbRes = _questionService.AddReponsesToQuestion(id, reponses); if (nbRes > 0) { return(RedirectToAction("Questions", "Questions")); } return(View()); }
/// <summary> /// Convertir "ReponseViewModel" en "Reponses" /// </summary> /// <param name="reponseViewModel"></param> /// <returns></returns> public static Reponses MapToReponses(this ReponseViewModel reponseViewModel) { var reponse = new Reponses(); if (reponseViewModel == null) { return(reponse); } reponse = new Reponses() { ReponseId = reponseViewModel.ReponseId, Content = reponseViewModel.Content, TrueReponse = reponseViewModel.TrueReponse }; return(reponse); }
/// <summary> /// Convertir "Reponses" en "ReponseViewModel" /// </summary> /// <param name="reponse"></param> /// <returns></returns> public static ReponseViewModel MapToReponseViewModel(this Reponses reponse) { var reponseViewModel = new ReponseViewModel(); if (reponse == null) { return(reponseViewModel); } reponseViewModel = new ReponseViewModel { ReponseId = reponse.ReponseId, Content = reponse.Content, TrueReponse = reponse.TrueReponse }; return(reponseViewModel); }
public void AddReponsesParDefaultToQuestion(int id) { using (var dbContext = new FilRougeDBContext()) { var question = dbContext.Questions.FirstOrDefault(q => q.QuestionId == id); var valeur = "saisieLibre"; if (question.MapToQuestionsViewModel().AnswerType == AnswerTypeEnum.SaisieCode) { valeur = "saisieCode"; } //var listeReponseUnique = new List<Reponses>(); var uneReponse = new Reponses() { Content = valeur, Question = question, TrueReponse = true }; question.Reponses.Add(uneReponse); dbContext.SaveChanges(); } }
// PUT: odata/Reponses(5) public async Task <IHttpActionResult> Put([FromODataUri] int key, Delta <Reponses> patch) { Validate(patch.GetEntity()); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Reponses reponses = await db.Reponses.FindAsync(key); if (reponses == null) { return(NotFound()); } patch.Put(reponses); try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ReponsesExists(key)) { return(NotFound()); } else { throw; } } return(Updated(reponses)); }
private void BtnDemarrer_Click(object sender, EventArgs e) { GboxQuestion.Text = selectedQues.ToString(); questions = QuestionDAO.FindAll(nomQuiz); selectedQues = questions[0]; nomQues = selectedQues.Id; reponses = ReponseDAO.FindAll(nomQues); selectedRep = reponses[0]; BtnDemarrer.Enabled = false; if (selectedQues.EstChoixMultiple == false) { CheckBox ChBoxReponse = new CheckBox { Location = new Point(25, 51), Name = "Rep" + selectedRep.Text, // + ++nbNouveauxBouton, Size = new Size(102, 20), //TabIndex = dernierTabIndex++, Text = selectedRep.Text, Visible = true }; } }
public ActionResult Action(QuestionViewModel mod) { Dal db = new Dal(); List <Individu> destinataires = new List <Individu>(); List <Groupe> groupes = new List <Groupe>(); foreach (string str in mod.Dests.Split(';')) { destinataires.Add(db.GetIndividus().FirstOrDefault(i => i.userLogin == str)); } foreach (string str in mod.Dests.Split(';')) { groupes.Add(db.GetGroupes().FirstOrDefault(g => g.nom == str)); } Message content = new Message { Individu = db.GetIndividus().Find(i => i.Id == int.Parse(User.Identity.Name)), contenu = mod.Detail, sujet = mod.Sujet, lu = false, recu = false, Id_expediteur = int.Parse(User.Identity.Name), Id = db.GetLastIdMessage() + 1, envoi = System.DateTime.Now, lecture = System.DateTime.Now }; if (!mod.question) { Questionnaire question = new Questionnaire { Id = db.GetLastQuestion() + 1, type = mod.Type, Type_Questionnaire = db.GetTypeQuestion(mod.Type), Id_message = content.Id, }; foreach (int i in mod.Reponses) { var opt = db.Reponses()[i - 1]; int idrep = db.GetRep().Count; idrep += i; Reponses rep = new Reponses { Questionnaire = question, Id = idrep, Id_question = question.Id, Id_reponse = i, Option_Questionnaire = opt }; db.Addreponse(rep); opt.Reponses.Add(rep); question.Reponses.Add(rep); } db.GetIndividus().Find(i => i.Id == int.Parse(User.Identity.Name)).Message.Add(content); db.GetQuestion().Add(question); db.AddMessage(content); question.Message = content; content.Questionnaire.Add(question); } foreach (Individu ind in destinataires) { if (ind != null) { Notification_Simple notif = new Notification_Simple { Id_individu = ind.Id, Individu = ind, Id_message = content.Id, Message = content }; ind.Notification_Simple.Add(notif); content.Notification_Simple.Add(notif); } } foreach (Groupe gr in groupes) { if (gr != null) { Notification_Diffusion not = new Notification_Diffusion { Id_groupe = gr.Id, Groupe = gr, Id_message = content.Id, Message = content, }; gr.Notification_Diffusion.Add(not); content.Notification_Diffusion.Add(not); } } db.Savedb(); NotificationsHub.GetNotificationHtml(content, db.GetIdsDestinataires(mod)); return(RedirectToAction("Index", "Home")); }
public ActionResult ResultatQuestionnaire() { Tools.Logger.Ecrire(Tools.Logger.Niveau.Erreur, string.Format("resultatQuestionnaire.UserQuestionnaire.Entrée(resultatSession: {0})", DALSession.ResultatQuestionnaire)); var resultat = false; DALSession.sessionFinish = 1; float resultatFinal = 0; try { if (DALSession.nombreBonneReponses == 0) { resultatFinal = 0; } else { resultatFinal = (float)(DALSession.nombreBonneReponses * 20 / DALElement.SelectAllQuestionFromQuestionnaire(DALSession.questionnaire.Id).Count); DALSession.noteFinale = resultatFinal; } if (resultatFinal >= DALSession.questionnaire.note) { DALSession.ResultatQuestionnaire = 1; } else { DALSession.ResultatQuestionnaire = 0; } Utilisateurs utilisateur = new Utilisateurs(); utilisateur.nom = DALSession.nom.ToUpper(); utilisateur.prenom = DALSession.prenom.ToUpper(); if (DALSession.idUtilisateur != 0) { utilisateur.Id = DALSession.idUtilisateur; DALUtilisateur.UpdateUtilisateur(utilisateur); } else { DALUtilisateur.InsertUtilisateur(utilisateur); } Resultat result = new Resultat(); result.noteObtenue = resultatFinal; result.tempsPassage = Int32.Parse((DateTime.Now - DALSession.dateDebut).Minutes.ToString()); result.idUtilisateur = utilisateur.Id; result.idQuestionnaire = DALSession.questionnaire.Id; result.datePassage = DALSession.dateDebut; result.intituleQuestionnaire = DALSession.questionnaire.intitule; DALResultat.InsertResultat(result); foreach (var r in DALSession.reponses) { Reponses reponse = new Reponses(); reponse.statut = r.statut; reponse.idElement = r.idElement; reponse.idResultat = result.Id; reponse.intitueleElement = r.intituleElement; reponse.texteQuestion = r.texteQuestion; DALReponse.InsertReponse(reponse); } Tools.Logger.Ecrire(Tools.Logger.Niveau.Info, string.Format("resultatQuestionnaire.UserQuestionnaire.Entrée(idResultatInsert : {0}, idUtilisateurInsert{1})", result.Id, utilisateur.Id)); } catch (Exception e) { Tools.Logger.Ecrire(Tools.Logger.Niveau.Erreur, string.Format("resultatQuestionnaire.UserQuestionnaire.Exception(Exception : {0})", e)); ViewBag.Error = ErrorList.resultatQuestionnaire; } return(View(resultat)); }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { // Formulaire en mode Impression // AME14112009 if (Request.QueryString["print"] != null || Request.QueryString["excel"] != null) { ImageButtonPrint.Visible = false; PanelControlSats.Visible = false; PanelAide.Visible = false; } if (Request.QueryString["print"] != null) { QuestionnaireControlStatAll.ModePrint = true; TrBoutonRetour.Visible = true; } if (Request.QueryString["excel"] != null) { PanelBoutonControl.Visible = false; // En fait cela revient a changer l'extension html en .xls // c'est totalement bidon ! Response.ContentType = "application/vnd.ms-excel"; // Set the content type to Excel Response.Charset = ""; // Remove the charset from the Content-Type header Page.EnableViewState = false; // Sinon Excel de merde ne sait pas lire le fichier genere !!! // Il faut absolument cette meta dans la MasterPage Print sinon cela ne marche pas pour // Excel d'ailleur en positionnant Charset ici on ne retrouve rien dans la source !...? // <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> QuestionnaireControlStatAll.ModeExcel = true; } // Choisir le premier Questionnaire a la place de l'utilisateur if (SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0) { SessionState.Questionnaire = SessionState.Questionnaires[0]; } if (Request.QueryString["QuestionnaireID"] != null) { int questionnaireID = int.Parse(Request.QueryString["QuestionnaireID"]); SessionState.Questionnaire = SessionState.Questionnaires.FindByID(questionnaireID); } // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); initTableauVotesPersonnes(Personnes.Count, Personnes); LabelNombreContacts.Text = Personnes.Count.ToString(); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollQuestionCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollQuestionCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherOnReponduATout(); } } // BUG25092009 il faut afficher tout ici if (Votes.Count > 0) { AfficherOnReponduATout(); } if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { int idx = 0; foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); //PollVoteCollection pvc = Votes.FindByPersonneGUID( p.PersonneGUID ); PollVoteCollection pvc = TableauVotesPersonnes[idx]; // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { // Cacher les infos sur les votants if (SessionState.Questionnaire.Anonymat) { string personne = "personne" + idx.ToString(); DropDownListQui.Items.Add(personne); Personne anonymat = new Personne(); anonymat = p; anonymat.Nom = personne; anonymat.Prenom = ""; anonymat.EmailBureau = ""; anonymat.Civilite = ""; anonymat.TelephonePerso = ""; PersonnesDropDownListQui.Add(anonymat); // BUG07062010 je vois pas pourquoi !!! //ListBoxQui.Enabled = false; } else { string personne = FormatPersonne(p); DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } idx += 1; } } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); QuestionnaireControlStatAll.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du premier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnaireControlStatAll.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnaireControlStatAll.SelectedPersonneGUID = personne.PersonneGUID; AfficherVotantEnModePrint(); } } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; CheckBoxAfficherMoyennePonderee.Checked = SessionState.CheckBox["CheckBoxAfficherMoyennePonderee"]; } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack == false) { //// Choisir le premier Questionnaire a la place de l'utilisateur //if ( SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0 ) //{ // SessionState.Questionnaire = SessionState.Questionnaires[ 0 ]; //} //if ( Request.QueryString[ "QuestionnaireID" ] != null ) //{ // int questionnaireID = int.Parse( Request.QueryString[ "QuestionnaireID" ] ); // SessionState.Questionnaire = SessionState.Questionnaires.FindByID( questionnaireID ); //} if (Request.QueryString["CodeAcces"] != null) { int code = int.Parse(Request.QueryString["CodeAcces"]); // Dans SessionState.Questionnaires on prend une precaution pour verifier le membre // si SessionState.MemberInfo == null alors Va te faire loguer et donc on utilise // pas ce code ici ! // SessionState.Questionnaire = SessionState.Questionnaires.FindByCodeAcces( code ); QuestionnaireCollection questionnaires = QuestionnaireCollection.GetAll(); SessionState.Questionnaire = questionnaires.FindByCodeAcces(code); } if (SessionState.Questionnaire == null || SessionState.Questionnaire.Publier == false) { PanelQuestionnairePasDePublication.Visible = true; PanelQuestionnairePublication.Visible = false; return; } // Pour un meilleur referencement LabelTitre.Text = "Statistiques " + SessionState.Questionnaire.Description; Page.Title = "Publication des Statistiques pour le questionnaire dont la description est " + SessionState.Questionnaire.Description; base.AddMetaContentType(); base.AddMetaTag("description", "Publication des statistiques pour le questionnaire" + SessionState.Questionnaire.Description); base.AddMetaTag("keywords", "questionnaire, statistique, enquêtes, enquete, en ligne"); base.AddMetaTag("revisit-after", "10 days"); base.AddMetaTag("author", "Sodevlog"); base.AddMetaTag("copyright", "Sodevlog"); // Charger les votes pour ce Questionnaire if (SessionState.Questionnaire != null && Votes == null) { Votes = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID); Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID); } if (Request.QueryString["PollAnswerID"] != null) { PanelSousPopulation.Visible = true; Guid pollAnswerID = new Guid(Request.QueryString["PollAnswerID"].ToString()); // BUG25092009 Il ne faut ajouter 2 fois la meme reponse sinon il y a cumul // il faut eviter le cumul de PollAnswerID de Questions et de Reponses if (PollAnswerID.Contains(pollAnswerID) == false) { PollAnswerID.Add(pollAnswerID); // Trouver les votants if (Votes.Count > 0) { // Comme on a que pollAnswerID a notre disposition, pour trouver la question il faut // trouver la Reponses de pollAnswerID // trouver la Question de la Reponse PollAnswer pollAnswer = PollAnswerCollection.GetByPollAnswerID(pollAnswerID); PollQuestionCollection pollAnswerCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID); PollQuestion pollQuestion = pollAnswerCollection.FindByPollQuestionID(pollAnswer.PollQuestionId); // Cumuler les Reponses cliquees par l'utilisateur et les Questions Questions.Add(pollQuestion); Reponses.Add(pollAnswer); // BUB25092009 AfficherTout(); } } // BUG25092009 on peut afficher tout ici AfficherTout(); if (ListBoxQui.Items.Count <= 0) { ListBoxQui.Items.Add("Pas de vote"); ListBoxQui.Rows = 1; // On efface tout, sinon l'utilisateur est perdu // et les Questions et les reponses continuent de s'accumuler // et l'utilisateur ne voit rien EffacerSousPopulation(); } else { ListBoxQui.Rows = ListBoxQui.Items.Count <= 10 ? ListBoxQui.Items.Count : 10; LabelListBoxQuiCount.Text = "Sous-population : " + ListBoxQui.Items.Count.ToString(); PanelReponses.Visible = true; } } else // du if ( Request.QueryString[ "PollAnswerID" ] != null ) { ListBoxQui.Items.Add("Cliquez sur une réponse"); ListBoxQui.Rows = 1; EffacerSousPopulation(); } if (SessionState.Questionnaire != null) { QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; LabelNombreContacts.Text = Personnes.Count.ToString(); PersonnesDropDownListQui.Clear(); // Trouver les votants if (Votes.Count > 0) { foreach (Personne p in Personnes) { //PollVoteCollection pvc = PollVoteCollection.GetPollVotes( SessionState.Questionnaire.QuestionnaireID, p.PersonneGUID ); PollVoteCollection pvc = Votes.FindByPersonneGUID(p.PersonneGUID); // A t il vote pour ce questionnaire ? if (pvc.Count > 0) { string personne = p.Nom + "/" + p.Prenom + "/" + p.EmailBureau; DropDownListQui.Items.Add(personne); PersonnesDropDownListQui.Add(p); } } } QuestionnairePublication.PersonneVotants = PersonnesDropDownListQui; // Afficher les votes du permier votant if (PersonnesDropDownListQui.Count >= 1) { if (DropDownListQuiSelectedIndex != 0) { DropDownListQui.SelectedIndex = DropDownListQuiSelectedIndex; } Personne personne = PersonnesDropDownListQui[DropDownListQui.SelectedIndex]; QuestionnairePublication.SelectedQuestionnaireID = SessionState.Questionnaire.QuestionnaireID; QuestionnairePublication.SelectedPersonneGUID = personne.PersonneGUID; } LabelVotes.Text = PersonnesDropDownListQui.Count.ToString(); } CheckBoxAfficherReponseTextuelle.Checked = SessionState.CheckBox["CheckBoxAfficherReponseTextuelle"]; CheckBoxAfficherDateVote.Checked = SessionState.CheckBox["CheckBoxAfficherDateVote"]; } // Effacer les objets que l'on publie pas //DropDownListQuestionnaires.Visible = false; ListBoxQui.Visible = false; //DropDownListQui.Visible = false; CheckBoxAfficherReponseTextuelle.Checked = false; QuestionnairePublication.AfficherReponseTextuelle = false; QuestionnairePublication.AfficherLaDateDesVotes = false; }
public PartialViewResult QuestionQuizz(int quizzId, QuestionViewModel question) { #region Sauvegarde de la reponse User if (question.QuestionId != 0) { // recupère la valeur questionId de la requête actuelle question.QuestionId = Int32.Parse(Request.Form.GetValues("QId")[0]); List <Reponses> reponsesUser = new List <Reponses>(); // recupere la question en cours var questionQui = _questionService.GetQuestion(question.QuestionId); // Si la question est une saisie libre if (questionQui.AnswerType == AnswerTypeEnum.SaisieLibre) { // Valeur de la textaera var reponseLibre = Request.Form.GetValues("reponseLibre")[0]; Reponses rLibre = new Reponses(); // Set les valeurs de la réponse rLibre.QuestionId = question.QuestionId; rLibre.Content = reponseLibre; rLibre.ReponseId = questionQui.Reponses[0].ReponseId; reponsesUser.Add(rLibre); } else { foreach (var reponse in questionQui.Reponses) { //pour chaque reponse on verifie si la checkbox est cochée var reponseChecked = Request.Form.GetValues("BonneReponse" + reponse.ReponseId)[0]; // Si true, on sauvegarde la reponse de l'utilisateur dans la liste if (reponseChecked.ToLower() == "true") { reponse.QuestionId = question.QuestionId; reponsesUser.Add(reponse); } } } // Sauvergarde les reponse du User _quizzService.SaveUserResponse(reponsesUser, quizzId); } #endregion var nextQuestion = _quizzService.GetNextQuestion(quizzId); // Check si la question suivante est nulle if (nextQuestion.QuestionId == 0) { // retourner la vue de fin de quizz return(PartialView("_FinQuizz")); } // retourner le viewModel qui contient une reponse par l'id de la question return(PartialView("_ReponseQuestionQuizz", nextQuestion)); }