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();
 }
Example #3
0
 public static void InsertReponse(Reponses reponse)
 {
     using (var context = new QCMAppBDDEntities())
     {
         context.Reponses.Add(reponse);
         context.SaveChanges();
     }
 }
Example #4
0
        // 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));
        }
Example #5
0
        //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);
        }
Example #6
0
        // 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());
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        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();
            }
        }
Example #11
0
        // 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));
        }
Example #12
0
        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
                };
            }
        }
Example #13
0
        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"));
        }
Example #14
0
        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;
    }
Example #17
0
        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));
        }