private void BuildDataList()
    {
        Trace.Warn("BuildDataList");

        if (SessionState.Questionnaire != null)
        {
            PollQuestionCollection pollQuestions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
            QuestionRankMax = pollQuestions.MaxRank();

            DropDownListCopierAPartirDe.Items.Clear();
            DropDownListCopierAPartirDe.Items.Add("");
            foreach (PollQuestion pq in pollQuestions)
            {
                DropDownListCopierAPartirDe.Items.Add(pq.Rank.ToString());
            }

            DataListQuestion.DataSource = pollQuestions;
            DataListQuestion.DataBind();

            // Trouver les reponses
            foreach (DataListItem dli in DataListQuestion.Items)
            {
                DataList dl = new DataList();
                dl = ( DataList )dli.FindControl("DataListReponse");

                HiddenField hf = new HiddenField();
                hf = ( HiddenField )dli.FindControl("PollQuestionId");
                Guid pollQuestionId          = new Guid(hf.Value);
                PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(pollQuestionId);

                dl.DataSource = answers;
                dl.DataBind();
            }
        }
    }
    private void BuildDataList()
    {
        if (SessionState.Questionnaire != null)
        {
            PollQuestionCollection pollQuestions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
            QuestionRankMax = pollQuestions.MaxRank();

            DataListQuestion.DataSource = pollQuestions;
            DataListQuestion.DataBind();

            // Trouver les reponses
            foreach (DataListItem dli in DataListQuestion.Items)
            {
                DataList dl = new DataList();
                dl = ( DataList )dli.FindControl("DataListReponse");

                HiddenField hf = new HiddenField();
                hf = ( HiddenField )dli.FindControl("PollQuestionId");
                Guid pollQuestionId          = new Guid(hf.Value);
                PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(pollQuestionId);

                dl.DataSource = answers;
                dl.DataBind();
            }
        }

        Trace.Warn("BuildDataList");
    }
Exemple #3
0
        protected void BindData(bool showResults)
        {
            Poll poll = PollManager.GetPollByID(this.PollID);

            if (poll != null && poll.Published)
            {
                lblPollName.Text   = Server.HtmlEncode(poll.Name);
                lblTotalVotes.Text = string.Format(GetLocaleResourceString("Polls.TotalVotes"), poll.TotalVotes);

                PollAnswerCollection pollAnswers = poll.PollAnswers;
                pnlTakePoll.Visible    = !showResults;
                pnlPollResults.Visible = showResults;
                if (showResults)
                {
                    dlResults.DataSource = pollAnswers;
                    dlResults.DataBind();
                }
                else
                {
                    rblPollAnswers.DataSource = pollAnswers;
                    rblPollAnswers.DataBind();
                }
            }
            else
            {
                pnlTakePoll.Visible    = false;
                pnlPollResults.Visible = false;
            }
        }
Exemple #4
0
 protected void DropDownListQuestionnaire_SelectedIndexChanged(object sender, EventArgs e)
 {
     SessionState.Questionnaire = SessionState.Questionnaires.FindByID(DropDownListQuestionnaire.QuestionnaireID);
     SessionState.Questions     = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
     SessionState.Reponses      = PollAnswerCollection.GetAll();
     LabelValider.Visible       = SessionState.Questionnaire.Valider;
     LabelFin.Visible           = SessionState.Questionnaire.Fin;
     LabelBloque.Visible        = SessionState.Questionnaire.Bloque;
     BuildDataList();
 }
 protected override void OnLoad(EventArgs e)
 {
     if (Page.IsPostBack == false)
     {
         if (SelectedQuestionnaireID != 0)
         {
             SessionState.Questionnaire = Questionnaire.GetQuestionnaire(SelectedQuestionnaireID);
             SessionState.Questions     = PollQuestionCollection.GetByQuestionnaire(SelectedQuestionnaireID);
             SessionState.Votes         = PollVoteCollection.GetPollVotesByQuestionnaireID(SelectedQuestionnaireID);
             SessionState.Reponses      = PollAnswerCollection.GetAll();
         }
     }
 }
Exemple #6
0
    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (IsPostBack == false)
        {
            if (Request.QueryString["QuestionnaireID"] != null)
            {
                Cache["QuestionnaireID"] = int.Parse(Request.QueryString["QuestionnaireID"]);
                Questionnaire questionnaire = Questionnaire.GetQuestionnaire((int)Cache["QuestionnaireID"]);

                Reporter.Trace("Questionnaire lecture");

                ValidationMessage.Text += "Suppression du Questionnaire : " + questionnaire.Description + ":" + questionnaire.CodeAcces + " questions : ";
                Cache["Questions"]      = PollQuestionCollection.GetByQuestionnaire(( int )Cache["QuestionnaireID"]);
                ValidationMessage.Text += ((PollQuestionCollection)Cache["Questions"]).Count + "<br />";
                foreach (PollQuestion question in ( PollQuestionCollection )Cache["Questions"])
                {
                    ValidationMessage.Text += "-- Question : " + question.Question + "<br />";
                    PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                    foreach (PollAnswer reponse in reponses)
                    {
                        ValidationMessage.Text += "---- Réponse : " + reponse.Answer + "<br />";
                        int nbVotes = PollVoteCollection.NumberOfVotesByAnswer(reponse.PollAnswerId);
                        ValidationMessage.Text += "----- Votes : " + nbVotes.ToString() + "<br />";
                    }
                }

                Cache["Personnes"]      = PersonneCollection.GetQuestionnaire(( int )Cache["QuestionnaireID"]);
                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des contacts : " + (( PersonneCollection )Cache["Personnes"]).Count + "<br />";
                foreach (Personne p in ( PersonneCollection )Cache["Personnes"])
                {
                    ValidationMessage.Text += p.Nom + " " + p.Prenom + " " + p.EmailBureau + " " + p.Societe + "<br />";
                }

                MemberInfo membre = MemberInfo.GetMemberInfo(questionnaire.MembreGUID);
                Cache["WebContents"]    = WebContentCollection.GetWebContents(membre.NomUtilisateur, questionnaire.CodeAcces.ToString());
                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des contenus web : " + (( WebContentCollection )Cache["WebContents"]).Count + "<br />";
                foreach (WebContent wc in ( WebContentCollection )Cache["WebContents"])
                {
                    ValidationMessage.Text += wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                }

                Cache["Scores"]         = ScoreCollection.GetScoreQuestionnaire(( int )Cache["QuestionnaireID"]);
                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des scores : " + (( ScoreCollection )Cache["Scores"]).Count + "<br />";

                ValidationMessage.Visible = true;
            }
        }
    }
        private static PollAnswerCollection DBMapping(DBPollAnswerCollection dbCollection)
        {
            if (dbCollection == null)
                return null;

            PollAnswerCollection collection = new PollAnswerCollection();
            foreach (DBPollAnswer dbItem in dbCollection)
            {
                PollAnswer item = DBMapping(dbItem);
                collection.Add(item);
            }

            return collection;
        }
Exemple #8
0
        protected void QuestionSuivante_Click(object sender, EventArgs e)
        {
            if (SessionState.CurrentQuestionIndex == SessionState.Questions.Count - 1)
            {
                SessionState.Questionnaire = null;
                Page.Response.Redirect("~/Poll/Termine.aspx", true);
            }

            // Passer a la question suivante
            SessionState.CurrentQuestionIndex += 1;
            SessionState.Question              = SessionState.Questions[SessionState.CurrentQuestionIndex];
            SessionState.Reponses              = PollAnswerCollection.GetByPollQuestionID(SessionState.Question.PollQuestionId);
            this.Controls.Clear();
            CreateControls();
        }
Exemple #9
0
        private static PollAnswerCollection DBMapping(DBPollAnswerCollection dbCollection)
        {
            if (dbCollection == null)
            {
                return(null);
            }

            PollAnswerCollection collection = new PollAnswerCollection();

            foreach (DBPollAnswer dbItem in dbCollection)
            {
                PollAnswer item = DBMapping(dbItem);
                collection.Add(item);
            }

            return(collection);
        }
 private PollAnswerCollection buildAnswers(XmlNodeList data)
 {
     if (data != null && data.Count > 0)
     {
         PollAnswerCollection pac = new PollAnswerCollection();
         foreach (XmlNode n in data)
         {
             XmlUtils.UseNode(n);
             PollAnswer pa = new PollAnswer();
             pa.Id = XmlUtils.Int("id");
             pa.Rate = XmlUtils.Float("rate");
             pa.Text = XmlUtils.String("text");
             pa.Votes = XmlUtils.Int("votes");
             pac.Add(pa);
         }
         return pac;
     }
     return null;
 }
Exemple #11
0
 private PollAnswerCollection buildAnswers(XmlNodeList data)
 {
     if (data != null && data.Count > 0)
     {
         PollAnswerCollection pac = new PollAnswerCollection();
         foreach (XmlNode n in data)
         {
             XmlUtils.UseNode(n);
             PollAnswer pa = new PollAnswer();
             pa.Id    = XmlUtils.Int("id");
             pa.Rate  = XmlUtils.Float("rate");
             pa.Text  = XmlUtils.String("text");
             pa.Votes = XmlUtils.Int("votes");
             pac.Add(pa);
         }
         return(pac);
     }
     return(null);
 }
Exemple #12
0
    protected void Page_Load(object sender, System.EventArgs e)
    {
        Reporter.Trace("Page_Load");

        if (IsPostBack == false)
        {
            if (Request.QueryString["QuestionnaireID"] != null)
            {
                int questionnaireID = int.Parse(Request.QueryString["QuestionnaireID"]);
                SessionState.Questionnaire = SessionState.Questionnaires.FindByID(questionnaireID);
            }

            // Choisir le premier Questionnaire a la place de l'utilisateur
            if (SessionState.Questionnaire == null && SessionState.Questionnaires.Count > 0)
            {
                SessionState.Questionnaire = SessionState.Questionnaires[0];
            }

            if (SessionState.Questionnaire != null)
            {
                LabelValider.Visible = SessionState.Questionnaire.Valider;
                LabelFin.Visible     = SessionState.Questionnaire.Fin;
                LabelBloque.Visible  = SessionState.Questionnaire.Bloque;

                SessionState.Questions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
                SessionState.Reponses  = PollAnswerCollection.GetAll();
                BuildDataList();
            }

            RolloverButtonProgrammer.Visible      = BoutonVisible();
            RolloverButtonAjouterQuestion.Visible = BoutonVisible();
        }

        // COR210920090002 c'est vicieux mais comme on ne peut rien faire sur UrlReferrer
        // de merde dont tous les elements sont en lecture seul !!
        // je ne vois que rendre invisible l'ancre
        if (Request.UrlReferrer.Fragment == "#BasDePage")
        {
            AncreBasDePage.Visible = false;
        }

        Page.Form.DefaultButton = DefaultButton.UniqueID; // Pour donner le focus
    }
Exemple #13
0
        /// <summary>
        /// Gets a poll answers by poll identifier
        /// </summary>
        /// <param name="PollID">Poll identifier</param>
        /// <returns>Poll answer collection</returns>
        public static PollAnswerCollection GetPollAnswersByPollID(int PollID)
        {
            string key  = string.Format(POLLANSWERS_BY_POLLID_KEY, PollID);
            object obj2 = NopCache.Get(key);

            if (PollManager.CacheEnabled && (obj2 != null))
            {
                return((PollAnswerCollection)obj2);
            }

            DBPollAnswerCollection dbCollection = DBProviderManager <DBPollProvider> .Provider.GetPollAnswersByPollID(PollID);

            PollAnswerCollection pollAnswerCollection = DBMapping(dbCollection);

            if (PollManager.CacheEnabled)
            {
                NopCache.Max(key, pollAnswerCollection);
            }
            return(pollAnswerCollection);
        }
Exemple #14
0
        protected override void OnLoad(EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Page.Request["QuestionnaireID"] != null)
                {
                    int questionnaireID = int.Parse(Page.Request["QuestionnaireID"].ToString());
                    SessionState.Questionnaire        = Questionnaire.GetQuestionnaire(questionnaireID);
                    SessionState.Questions            = PollQuestionCollection.GetByQuestionnaire(questionnaireID);
                    SessionState.Question             = SessionState.Questions[0]; // permiere question
                    SessionState.Reponses             = PollAnswerCollection.GetByPollQuestionID(SessionState.Question.PollQuestionId);
                    SessionState.CurrentQuestionIndex = 0;
                }
            }

            if (!Page.IsCallback)
            {
                int tete = 123214;
            }
        }
Exemple #15
0
    protected void TextBoxQuestion_TextChanged(object sender, EventArgs e)
    {
        Reporter.Trace("TextBoxQuestion_TextChanged");
        BloquerQuestionnaire(SessionState.Questionnaire.Bloque);

        try
        {
            TextBox     textBox = ( TextBox )sender;
            HiddenField hf      = new HiddenField();
            hf = ( HiddenField )textBox.Parent.FindControl("PollQuestionId");
            Guid         pollQuestionId = new Guid(hf.Value);
            PollQuestion question       = SessionState.Questions.FindByPollQuestionID(pollQuestionId);

            // Mise a jour de la Question
            if (textBox.Text.Trim() != string.Empty)
            {
                question.Question = textBox.Text.Trim();
                PollQuestion.Update(question);
            }
            else // Suppression de la Question des Reponses et des Votes associes
            {
                int status = 0;
                PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                foreach (PollAnswer reponse in reponses)
                {
                    PollVoteCollection votes = PollVoteCollection.GetVotes(reponse.PollAnswerId);
                    foreach (PollVote vote in votes)
                    {
                        status += PollVote.Delete(vote.VoteId);
                    }
                    status += PollAnswer.Delete(reponse.PollAnswerId);
                }
                status += PollQuestion.Delete(question.PollQuestionId);
                SessionState.Limitations.SupprimerQuestion();
                RebuildDataList();
            }
        }
        catch
        {
        }
    }
Exemple #16
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            if (HasUserAlreadyVoted())
            {
                this.Controls.Add(new LiteralControl("<br/>Vous avez déjà répondu à cette question."));
            }
            else if (!Strings.IsNullOrEmpty(((( RadioButtonList )this.Controls[5]).SelectedValue)))
            {
                Limitation limitation = new Limitation(SessionState.Questionnaire.MembreGUID);
                if (limitation.LimitesReponses)
                {
                    Context.Response.Redirect(Tools.PageErreurPath + "Désolé mais le nombre de réponses pour ce questionnaire est atteinte.", true);
                }

                PollVote pv = new PollVote();
                pv.PollQuestionID  = SessionState.Question.PollQuestionId;
                pv.PollAnswerId    = new Guid((( RadioButtonList )this.Controls[5]).SelectedValue);
                pv.UserGUID        = SessionState.Personne.PersonneGUID;
                pv.QuestionnaireID = SessionState.Question.QuestionnaireID;
                pv.CreationDate    = DateTime.Now;
                PollVote.Create(pv);

                // Le questionnaire est termine
                if (SessionState.CurrentQuestionIndex == SessionState.Questions.Count - 1)
                {
                    SessionState.Questionnaire = null;
                    Page.Response.Redirect("~/Poll/Termine.aspx", true);
                }

                // Passer a la question suivante
                SessionState.CurrentQuestionIndex += 1;
                SessionState.Question              = SessionState.Questions[SessionState.CurrentQuestionIndex];
                SessionState.Reponses              = PollAnswerCollection.GetByPollQuestionID(SessionState.Question.PollQuestionId);
                this.Controls.Clear();
                CreateControls();
            }
            else
            {
                this.Controls.Add(new LiteralControl("<br/>Merci de répondre à la question."));
            }
        }
Exemple #17
0
        private void BindData()
        {
            Poll poll = PollManager.GetPollByID(this.PollID);

            if (poll != null)
            {
                CommonHelper.SelectListItem(this.ddlLanguage, poll.LanguageID);
                this.txtName.Text          = poll.Name;
                this.txtSystemKeyword.Text = poll.SystemKeyword;
                this.cbPublished.Checked   = poll.Published;
                this.txtDisplayOrder.Value = poll.DisplayOrder;

                pnlPollAnswers.Visible = true;
                PollAnswerCollection pollAnswers = poll.PollAnswers;
                gvPollAnswers.DataSource = pollAnswers;
                gvPollAnswers.DataBind();
            }
            else
            {
                pnlPollAnswers.Visible = false;
            }
        }
Exemple #18
0
    // BUG10092009 static Guid MembreGUID = Guid.Empty;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            if (Request.QueryString["MembreGUID"] == null)
            {
                Response.Redirect("~/Member/Manage.aspx");
            }
            else
            {
                Cache["MembreGUID"] = new Guid(Request.QueryString["MembreGUID"]);
                MembershipUser user   = Membership.GetUser(( Guid )Cache["MembreGUID"]);
                MemberInfo     member = MemberInfo.Get(( Guid )Cache["MembreGUID"]);
                ValidationMessage.Text += "Suppression du Membre : " + member.Nom + " " + member.Prenom + " " + user.Email + "<br />";
                ValidationMessage.Text += "-- Nom d'utilisateur : " + user.UserName + "<br /><br />";

                Cache["Questionnaires"] = QuestionnaireCollection.GetQuestionnaireMembre(( Guid )Cache["MembreGUID"]);
                foreach (Questionnaire questionnaire in ( QuestionnaireCollection )Cache["Questionnaires"])
                {
                    int QuestionnaireID = questionnaire.QuestionnaireID;
                    ValidationMessage.Text += "Suppression du Questionnaire : " + questionnaire.Description + ":" + questionnaire.CodeAcces + " questions : ";
                    PollQuestionCollection questions = PollQuestionCollection.GetByQuestionnaire(QuestionnaireID);
                    ValidationMessage.Text += questions.Count + "<br />";
                    foreach (PollQuestion question in questions)
                    {
                        ValidationMessage.Text += "-- Question : " + question.Question + "<br />";
                        PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                        foreach (PollAnswer reponse in reponses)
                        {
                            ValidationMessage.Text += "---- Réponse : " + reponse.Answer + "<br />";
                            int nbVotes = PollVoteCollection.NumberOfVotesByAnswer(reponse.PollAnswerId);
                            ValidationMessage.Text += "------ Votes : " + nbVotes.ToString() + "<br />";
                        }
                    }

                    PersonneCollection personnes = PersonneCollection.GetQuestionnaire(QuestionnaireID);
                    ValidationMessage.Text += "</br>";
                    ValidationMessage.Text += "Suppression des contacts : " + personnes.Count + "<br />";
                    foreach (Personne p in personnes)
                    {
                        ValidationMessage.Text += p.Nom + " " + p.Prenom + " " + p.EmailBureau + " " + p.Societe + "<br />";
                    }
                    ValidationMessage.Text += "</br>";

                    WebContentCollection webContents = WebContentCollection.GetWebContents(member.NomUtilisateur, questionnaire.CodeAcces.ToString());
                    ValidationMessage.Text += "Suppression des contenus web pour le Questionnaire : " + webContents.Count + "<br />";
                    foreach (WebContent wc in webContents)
                    {
                        ValidationMessage.Text += wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                    }
                    ValidationMessage.Text += "</br>";

                    Cache["Scores"]         = ScoreCollection.GetScoreQuestionnaire(QuestionnaireID);
                    ValidationMessage.Text += "Suppression des scores : " + (( ScoreCollection )Cache["Scores"]).Count + "<br />";
                    ValidationMessage.Text += "</br>";
                }
                ValidationMessage.Text += "</br>";

                Cache["WebContentsToutLeMonde"] = WebContentCollection.GetWebContents(member.NomUtilisateur, WebContent.ToutLeMonde);
                ValidationMessage.Text         += "Suppression des contenus web pour Tout le Monde : " + (( WebContentCollection )Cache["WebContentsToutLeMonde"]).Count + "<br />";
                foreach (WebContent wc in ( WebContentCollection )Cache["WebContentsToutLeMonde"])
                {
                    ValidationMessage.Text += "-- " + wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                }
                ValidationMessage.Text += "</br>";

                ValidationMessage.Text += "Suppression des styles web :<br />";
                string dirStyleWeb = Server.MapPath("~/App_Data/StyleWeb/" + user.UserName);
                if (Directory.Exists(dirStyleWeb))
                {
                    List <Fichier> fichiers = Tools.GetAllFichiers(dirStyleWeb);
                    if (fichiers.Count <= 0)
                    {
                        ValidationMessage.Text += "-- Pas de style web<br />";
                    }
                    else
                    {
                        foreach (Fichier f in fichiers)
                        {
                            string nomFichier = Tools.GetFileNameWithoutExtension(f.Nom);
                            ValidationMessage.Text += "-- " + nomFichier + "<br />";
                        }
                    }
                }
                else
                {
                    ValidationMessage.Text += "-- Pas de style web<br />";
                }
                ValidationMessage.Text += "</br>";

                ValidationMessage.Text += "Suppression du fichier de paramètres : <br />";
                string fileName = Server.MapPath("~/App_Data/MemberSettings/" + user.UserName + ".xml");
                if (File.Exists(fileName))
                {
                    string nomFichier = Tools.GetFileNameWithoutExtension(fileName);
                    ValidationMessage.Text += "-- " + nomFichier + "<br />";
                }
                else
                {
                    ValidationMessage.Text += "-- Pas de paramètres<br />";
                }
                ValidationMessage.Text += "</br>";

                ValidationMessage.Text += "Suppression du Serveur SMTP :<br />";
                SmtpServer stmpServeur = SmtpServer.Get(member.MembreGUID);
                if (stmpServeur != null)
                {
                    ValidationMessage.Text += "-- Email : " + stmpServeur.Email + "<br />";
                    ValidationMessage.Text += "-- UserName : "******"<br />";
                    ValidationMessage.Text += "-- PassWord : "******"<br />";
                    ValidationMessage.Text += "-- ServerName : " + stmpServeur.ServerName + "<br />";
                }
                else
                {
                    ValidationMessage.Text += "-- Pas de serveur SMTP<br />";
                }

                ValidationMessage.Visible = true;
            }
        }
    }
Exemple #19
0
    protected void ButtonSupprimer_Click(object sender, EventArgs e)
    {
        if (Cache["MembreGUID"] == null || ( Guid )Cache["MembreGUID"] == Guid.Empty)
        {
            ValidationMessage.Text    += "<br/>Choisir un membre à supprimer.<br/>";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            ValidationMessage.Visible  = true;
        }
        else
        {
            int status       = 0;
            int statusGlobal = 0;

            ValidationMessage.Text += "<br />-----------------------------------------------------<br />";
            ValidationMessage.Text += " Début de la Suppression du Membre <br />";
            ValidationMessage.Text += "-----------------------------------------------------<br />";

            Reporter.Trace("ButtonSupprimer_Click début");

            MemberInfo member = MemberInfo.Get(( Guid )Cache["MembreGUID"]);

            foreach (Questionnaire questionnaire in (QuestionnaireCollection)Cache["Questionnaires"])
            {
                int QuestionnaireID = questionnaire.QuestionnaireID;

                ValidationMessage.Text += "--- Suppression du Questionnaire : " + questionnaire.Description + ":" + questionnaire.CodeAcces + " questions : ";
                PollQuestionCollection questions = PollQuestionCollection.GetByQuestionnaire(QuestionnaireID);
                ValidationMessage.Text += questions.Count + "<br />";

                foreach (PollQuestion question in questions)
                {
                    PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                    foreach (PollAnswer reponse in reponses)
                    {
                        PollVoteCollection votes = PollVoteCollection.GetVotes(reponse.PollAnswerId);
                        int nbVotes = PollVoteCollection.NumberOfVotesByAnswer(reponse.PollAnswerId);
                        ValidationMessage.Text += "----- Suppression des votes : " + nbVotes.ToString() + "<br />";
                        foreach (PollVote vote in votes)
                        {
                            status                  = PollVote.Delete(vote.VoteId);
                            statusGlobal            = statusGlobal + status;
                            ValidationMessage.Text += "      status : " + status.ToString() + "<br />";
                        }
                        ValidationMessage.Text += "---- Suppression de la Réponse : " + reponse.Answer + "<br />";
                        status                  = PollAnswer.Delete(reponse.PollAnswerId);
                        statusGlobal            = statusGlobal + status;
                        ValidationMessage.Text += "     status : " + status.ToString() + "<br />";
                    }
                    ValidationMessage.Text += "---  Suppression de la Question : " + question.Question + "<br />";
                    status = PollQuestion.Delete(question.PollQuestionId);
                    SessionState.Limitations.SupprimerQuestion();
                    statusGlobal            = statusGlobal + status;
                    ValidationMessage.Text += "    status : " + status.ToString() + "<br />";
                }

                PersonneCollection personnes = PersonneCollection.GetQuestionnaire(QuestionnaireID);
                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des contacts : " + personnes.Count + "<br />";
                foreach (Personne p in personnes)
                {
                    ValidationMessage.Text += p.Nom + " " + p.Prenom + " " + p.EmailBureau + " " + p.Societe + "<br />";
                    status                  = Personne.Delete(p.ID_Personne);
                    statusGlobal            = statusGlobal + status;
                    ValidationMessage.Text += "status : " + status.ToString() + "<br />";
                }
                SessionState.Limitations.SupprimerInterviewes(personnes.Count);

                WebContentCollection webContents = WebContentCollection.GetWebContents(member.NomUtilisateur, questionnaire.CodeAcces.ToString());
                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des contenus web pour le Questionnaire : " + webContents.Count + "<br />";
                foreach (WebContent wc in webContents)
                {
                    ValidationMessage.Text += wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                    status                  = WebContent.Delete(wc.WebContentID);
                    statusGlobal            = statusGlobal + status;
                    ValidationMessage.Text += "status : " + status.ToString() + "<br />";
                }

                ValidationMessage.Text += "</br>";
                ValidationMessage.Text += "Suppression des scores : " + (( ScoreCollection )Cache["Scores"]).Count + "<br />";
                foreach (Score s in ( ScoreCollection )Cache["Scores"])
                {
                    status       = Score.Delete(s.ScoreID);
                    statusGlobal = statusGlobal + status;
                }

                ValidationMessage.Text += "Suppression du Questionnaire : " + questionnaire.Description + "<br />";
                status       = Questionnaire.Delete(questionnaire.QuestionnaireID);
                statusGlobal = statusGlobal + status;
                SessionState.Limitations.SupprimerQuestionnaire();
                ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            }// Fin de foreach ( Questionnaire questionnaire in Questionnaires )

            Reporter.Trace("foreach ( Questionnaire questionnaire in Questionnaires ) fin");

            ValidationMessage.Text += "Suppression des contenus web pour Tout Le Monde : " + (( WebContentCollection )Cache["WebContentsToutLeMonde"]).Count + "<br />";
            foreach (WebContent wc in ( WebContentCollection )Cache["WebContentsToutLeMonde"])
            {
                ValidationMessage.Text += wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                status                  = WebContent.Delete(wc.WebContentID);
                statusGlobal            = statusGlobal + status;
                ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            }

            MembershipUser user = Membership.GetUser(( Guid )Cache["MembreGUID"]);

            Reporter.Trace("Directory.Exists( dirStyleWeb ) début");

            ValidationMessage.Text += "Suppression des styles web :<br />";
            string dirStyleWeb = Server.MapPath("~/App_Data/StyleWeb/" + user.UserName);
            if (Directory.Exists(dirStyleWeb))
            {
                List <Fichier> fichiers = Tools.GetAllFichiers(dirStyleWeb);
                if (fichiers.Count <= 0)
                {
                    ValidationMessage.Text += "-- Pas de style web<br />";
                }
                else
                {
                    foreach (Fichier f in fichiers)
                    {
                        try
                        {
                            File.Delete(f.Nom);
                            string nomFichier = Tools.GetFileNameWithoutExtension(f.Nom);
                            ValidationMessage.Text += "-- fichier supprimé : " + nomFichier + "<br />";
                        }
                        catch
                        {
                            string nomFichier = Tools.GetFileNameWithoutExtension(f.Nom);
                            ValidationMessage.Text += "-- ERREUR à la suppression du fichier : " + nomFichier + "<br />";
                        }
                    }
                }
                ValidationMessage.Text += "Suppression du répertoire : " + user.UserName;
                try
                {
                    Directory.Delete(dirStyleWeb);
                }
                catch (Exception ex)
                {
                    ValidationMessage.Text += " Erreur : " + ex.Message + "</br>";
                }
                ValidationMessage.Text += "</br>";
            }
            else
            {
                ValidationMessage.Text += "-- Pas de style web<br />";
            }
            ValidationMessage.Text += "</br>";

            Reporter.Trace("Directory.Exists( dirStyleWeb ) fin");

            ValidationMessage.Text += "Suppression du fichier de paramètres :<br />";
            string fileName = Server.MapPath("~/App_Data/MemberSettings/" + user.UserName + ".xml");
            if (File.Exists(fileName))
            {
                File.Delete(fileName);
                string nomFichier = Tools.GetFileNameWithoutExtension(fileName);
                ValidationMessage.Text += "-- fichier supprimé : " + nomFichier + "<br />";
            }
            else
            {
                string nomFichier = Tools.GetFileNameWithoutExtension(fileName);
                ValidationMessage.Text += "-- ERREUR à la suppression du fichier : " + nomFichier + "<br />";
            }
            ValidationMessage.Text += "</br>";

            Reporter.Trace("SmtpServer.Get( member.MembreGUID ) début");

            SmtpServer stmpServeur = SmtpServer.Get(member.MembreGUID);
            if (stmpServeur != null)
            {
                ValidationMessage.Text += "Suppression du Serveur SMTP :" + stmpServeur.ServerName + "<br />";
                status                  = SmtpServer.Delete(stmpServeur.SmtpServerID);
                statusGlobal            = statusGlobal + status;
                ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            }

            Reporter.Trace("SmtpServer.Get( member.MembreGUID ) fin");

            ValidationMessage.Text += "Suppression du Membre : " + member.Nom + " " + member.Prenom + " " + user.Email + " " + user.UserName + "<br />";
            status                  = MemberInfo.Delete(( Guid )Cache["MembreGUID"]);
            statusGlobal            = statusGlobal + status;
            ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            ValidationMessage.Text += "Suppression de l'Utilisateur : " + user.UserName + "<br />";

            bool ok = Membership.DeleteUser(user.UserName, true);
            if (ok)
            {
                status = 0;
            }
            else
            {
                status = 1;
            }
            ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            ValidationMessage.Text += "<br />status global : " + statusGlobal.ToString() + "<br />";

            ValidationMessage.Visible = true;

            // Forcer les Questionnaires a se recharger depuis la Base de Donnees
            SessionState.Questionnaires = null;
            SessionState.Questionnaire  = null;
            Cache["MembreGUID"]         = Guid.Empty;

            // Si c'est un membre qui supprime sont compte
            if (User.IsInRole("Administrateur") == false)
            {
                // Message de suppression d'un membre a l'admin
                string sujetEmail2 = "Suppression d'un Membre sur le site : " + Global.SettingsXml.SiteNom;
                string bodyEmail2  = "";

                bodyEmail2 += "Nom d'utilisateur : " + SessionState.MemberInfo.NomUtilisateur + "<br/>";
                bodyEmail2 += "Nom : " + SessionState.MemberInfo.Nom + "<br/>";
                bodyEmail2 += "Prénom : " + SessionState.MemberInfo.Prenom + "<br/>";
                bodyEmail2 += "Société : " + SessionState.MemberInfo.Societe + "<br/>";
                bodyEmail2 += "Téléphone : " + SessionState.MemberInfo.Telephone + "<br/>";
                bodyEmail2 += "Adresse : " + SessionState.MemberInfo.Adresse + "<br/>";
                bodyEmail2 += "Email : " + user.Email + "<br/>";
                bodyEmail2 += "<br/>Accès à l'application :<br/>" + string.Format("<a href=\"{0}\" >{1}</a>", Utils.WebSiteUri, Utils.WebSiteUri) + "<br/>";

                MemberInfo     admin     = MemberInfo.GetMemberInfo("admin");
                MembershipUser userAdmin = Membership.GetUser(admin.MembreGUID);
                Courriel.EnvoyerEmailToAssynchrone(admin.MembreGUID, userAdmin.Email, sujetEmail2, bodyEmail2);

                // Deconnecter l'utilisateur
                FormsAuthentication.SignOut();
                HttpContext.Current.Session.Abandon();
                Response.Redirect("~/Member/Login.aspx");
            }
        }
    }
Exemple #20
0
    // Ajouter des Reponses a la Question
    protected void TextBoxReponse_TextChanged(object sender, EventArgs e)
    {
        Reporter.Trace("TextBoxReponse_TextChanged");
        BloquerQuestionnaire(SessionState.Questionnaire.Bloque);

        try
        {
            TextBox      textBox        = ( TextBox )sender;
            DropDownList ddlTypeReponse = ( DropDownList )textBox.Parent.FindControl("DropDownListTypeReponse");
            if (textBox.Text.Trim() != "" && ddlTypeReponse.SelectedValue != "-1")
            {
                HiddenField hf = new HiddenField();
                hf = ( HiddenField )textBox.Parent.FindControl("PollQuestionId");
                Guid                 pollQuestionId = new Guid(hf.Value);
                PollQuestion         question       = SessionState.Questions.FindByPollQuestionID(pollQuestionId);
                PollAnswerCollection reponses       = PollAnswerCollection.GetByPollQuestionID(pollQuestionId);

                CheckBox cbxObligatoire = ( CheckBox )textBox.Parent.FindControl("CheckBoxObligatoire");

                if (textBox.Text.Trim().Contains(";"))
                {
                    int      rank          = reponses.MaxRank() + 1; // ajouter les reponses a la suite des reponses existantes
                    string[] reponsesSplit = textBox.Text.Trim().Split(';');
                    foreach (string rep in reponsesSplit)
                    {
                        PollAnswer reponse = new PollAnswer(rep.Trim());
                        reponse.PollQuestionId = question.PollQuestionId;
                        reponse.TypeReponse    = ddlTypeReponse.SelectedValue;
                        reponse.Obligatoire    = cbxObligatoire.Checked;
                        reponse.Rank           = rank;

                        int status = PollAnswer.Create(reponse);
                        rank += 1;
                    }
                }
                else
                {
                    PollAnswer reponse = new PollAnswer();
                    reponse.PollQuestionId = question.PollQuestionId;
                    reponse.Answer         = textBox.Text.Trim();
                    reponse.TypeReponse    = ddlTypeReponse.SelectedValue;
                    //                reponse.Width = reponse.Width;
                    //                reponse.Rows = reponse.Rows;
                    //                reponse.AlignLeft = reponse.AlignLeft;
                    //                reponse.Horizontal = reponse.Horizontal;
                    reponse.Obligatoire = cbxObligatoire.Checked;
                    reponse.Rank        = reponses.MaxRank() + 1; // ajouter la reponse a la suite des reponses existantes

                    int status = PollAnswer.Create(reponse);
                }

                RebuildDataList();
            }

            if (ddlTypeReponse.SelectedValue == "-1")
            {
                textBox.CssClass = "TextBoxListUserQuestionInstructionRedStyle";
                textBox.Text     = "Choisir un Type de réponse";
            }
        }
        catch
        {
        }
    }
Exemple #21
0
    private void BuildDataList()
    {
        Reporter.Trace("BuildDataList");

        // AME19102010 Mode Pagination - Il y a t-il plusieurs pages ?
        if (modePage())
        {
            // AME19102010 - Mettre ou remettre les boutons des pager en fonction de CurrentPage
            if (CurrentPage == 0)   // premiere page
            {
                ButtonPagePrecedenteHaut.Visible = false;
                ButtonPagePrecedenteBas.Visible  = false;
                ButtonPageSuivanteHaut.Visible   = true;
                ButtonPageSuivanteBas.Visible    = true;
            }
            if (CurrentPage > 0)
            {
                ButtonPagePrecedenteHaut.Visible = true;
                ButtonPagePrecedenteBas.Visible  = true;
                ButtonPageSuivanteHaut.Visible   = true;
                ButtonPageSuivanteBas.Visible    = true;
            }
            if (nombrePage() > 0 && CurrentPage + 1 >= nombrePage()) // derniere page
            {
                CurrentPage = nombrePage() - 1;                      // si on a change la pagination CurrentPage ne peut pas depasser nombrePage() - 1
                ButtonPagePrecedenteHaut.Visible = true;
                ButtonPagePrecedenteBas.Visible  = true;
                ButtonPageSuivanteHaut.Visible   = false;
                ButtonPageSuivanteBas.Visible    = false;
            }

            PagedDataSource pagedDataSource = new PagedDataSource();
            pagedDataSource.AllowPaging      = true;
            pagedDataSource.DataSource       = SessionState.Questions;
            pagedDataSource.PageSize         = int.Parse(SessionState.MemberSettings.TaillePageQuestions);
            pagedDataSource.CurrentPageIndex = CurrentPage;

            LabelPageCouranteHaut.Text    = (CurrentPage + 1).ToString() + "/" + nombrePage().ToString();
            LabelPageCouranteBas.Text     = LabelPageCouranteHaut.Text;
            LabelPageCouranteHaut.ToolTip = "Page courante/Nombre de pages - taille d'une page : " + SessionState.MemberSettings.TaillePageQuestions;
            LabelPageCouranteBas.ToolTip  = LabelPageCouranteHaut.ToolTip;

            PanelPagerHaut.Visible = true;
            PanelPagerBas.Visible  = true;

            DataListQuestion.DataSource = pagedDataSource;
        }
        else
        {
            PanelPagerHaut.Visible      = false;
            PanelPagerBas.Visible       = false;
            DataListQuestion.DataSource = SessionState.Questions;
        }
        DataListQuestion.DataBind();

        // Trouver toutes les reponses
        foreach (DataListItem dli in DataListQuestion.Items)
        {
            DataList dl = new DataList();
            dl = ( DataList )dli.FindControl("DataListReponse");

            HiddenField hf = new HiddenField();
            hf = ( HiddenField )dli.FindControl("PollQuestionId");
            Guid pollQuestionId          = new Guid(hf.Value);
            PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(pollQuestionId);

            dl.DataSource = answers;
            dl.DataBind();

            DropDownList ddlTypReponse = ( DropDownList )dli.FindControl("DropDownListTypeReponse");
            ddlTypReponse.DataSource = TypeReponse.List();
            ddlTypReponse.DataBind();
            ddlTypReponse.Items.Insert(0, new ListItem("Type de Réponse", "-1"));

            // Par defaut on propose toujours le type de reponse "Choix"
            ddlTypReponse.SelectedValue = TypeReponse.Choix;
        }
    }
Exemple #22
0
 private void RebuildDataList()
 {
     SessionState.Questions = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
     SessionState.Reponses  = PollAnswerCollection.GetAll();
     BuildDataList();
 }
    protected void ButtonCopier_Click(object sender, EventArgs e)
    {
        Reporter.Trace("ButtonCopier_Click");

        if (( int )Cache["QuestionnaireID "] == 0)
        {
            ValidationMessage.Text    += "Choisir un questionnaire à copier.<br/>";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            ValidationMessage.Visible  = true;
        }
        else
        {
            int           status           = 0;
            MemberInfo    membre           = MemberInfo.GetMemberInfo(( Guid )Cache["MembreGUID"]);
            Questionnaire questionnaire    = Questionnaire.GetQuestionnaire(( int )Cache["QuestionnaireID "]);
            Questionnaire newquestionnaire = new Questionnaire();

            Reporter.Trace("GetMemberInfo() GetQuestionnaire()");

            // Creation d'un nouveau Questionnaire
            if (( int )Cache["QuestionnaireExistantID"] == 0)
            {
                newquestionnaire.Description  = questionnaire.Description;
                newquestionnaire.Style        = questionnaire.Style;
                newquestionnaire.Valider      = questionnaire.Valider;
                newquestionnaire.Fin          = questionnaire.Fin;
                newquestionnaire.Anonyme      = questionnaire.Anonyme;
                newquestionnaire.Compteur     = questionnaire.Compteur;
                newquestionnaire.DateCreation = DateTime.Now;
                newquestionnaire.MembreGUID   = ( Guid )Cache["MembreGUID"];
                newquestionnaire.CodeAcces    = ( int )Cache["CodeAcces"];

                ValidationMessage.Text += "<br />Création du Questionnaire : " + newquestionnaire.Description + ":" + newquestionnaire.CodeAcces + "<br />";
                if (User.IsInRole("Administrateur"))
                {
                    ValidationMessage.Text += "Pour le membre : " + membre.NomUtilisateur + "/" + membre.Nom + "/" + membre.Prenom + "<br />";
                }

                // Tester les limitations avant d'ajouter le questionnaire
                if (SessionState.Limitations.LimiteQuestionnaires)
                {
                    // BUG05062010 12072010
                    SessionState.Questionnaire = null;

                    Tools.PageValidation("La limite du nombre de Questionnaires : " + SessionState.Limitations.NombreQuestionnaires + " est atteinte.<br/>Contactez l'administrateur.");
                }

                status = Questionnaire.Create(newquestionnaire);
                if (status == 1)
                {
                    ValidationMessage.Text += "Questionnaire créé correctement.<br/>";

                    // BUG05062010
                    // Prendre en compte le nouveau Questionnaire
                    //SessionState.Questionnaires.Add( questionnaire );
                    //SessionState.Questionnaire = questionnaire;
                    //SessionState.Limitations.AjouterQuestionnaire();
                    SessionState.Questionnaires.Add(newquestionnaire);
                    SessionState.Questionnaire = newquestionnaire;
                    SessionState.Limitations.AjouterQuestionnaire();
                }
                else if (status == 2)
                {
                    ValidationMessage.Text    += "Le Questionnaire existe déjà.<br>";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                }
                else
                {
                    ValidationMessage.Text    += "Erreur sur la création du Questionnaire<br/>";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                }
            }
            else // Questionnaire existant
            {
                newquestionnaire = Questionnaire.GetQuestionnaire(( int )Cache["QuestionnaireExistantID"]);

                // BUG05062010
                // Arrive ici la DropDownListQuestionnaire a modifie
                // SessionState.Questionnaire avec le questionnaire de l'Intervieweur
                // il faut donc remmettre SessionState.Questionnaire a la valeur de l'utilisateur
                SessionState.Questionnaire = newquestionnaire;

                ValidationMessage.Text += "<br />Copie du Questionnaire : " + newquestionnaire.Description + ":" + newquestionnaire.CodeAcces + "<br />";
                ValidationMessage.Text += "Pour le membre : " + membre.NomUtilisateur + "/" + membre.Nom + "/" + membre.Prenom + "<br />";
            }

            int rank = 0;
            // Conserver le rang des Questions avec un biais MaxRank
            if (( int )Cache["QuestionnaireExistantID"] != 0)
            {
                PollQuestionCollection questionsExistantes = PollQuestionCollection.GetByQuestionnaire(( int )Cache["QuestionnaireExistantID"]);
                rank = questionsExistantes.MaxRank() + 1;
            }

            Reporter.Trace("Questionnaire copier début");

            foreach (PollQuestion question in ( PollQuestionCollection )Cache["Questions"])
            {
                ValidationMessage.Text += "----Création de la Question : " + question.Question + "<br />";
                PollQuestion q = new PollQuestion();
                q.Question           = question.Question;
                q.Rank               = question.Rank + rank; // Ajouter le Biais
                q.Societe            = question.Societe;
                q.Obligatoire        = question.Obligatoire;
                q.Fin                = question.Fin;
                q.ChoixMultiple      = question.ChoixMultiple;
                q.ChoixMultipleMin   = question.ChoixMultipleMin; //BUG20100330
                q.ChoixMultipleMax   = question.ChoixMultipleMax;
                q.CreationDate       = DateTime.Now;
                q.Instruction        = question.Instruction;
                q.Message            = question.Message;
                q.MessageHaut        = question.MessageHaut;
                q.SautPage           = question.SautPage;
                q.Tableau            = question.Tableau;
                q.AlignementQuestion = question.AlignementQuestion;
                q.AlignementReponse  = question.AlignementReponse;
                q.QuestionnaireID    = newquestionnaire.QuestionnaireID;
                q.MembreGUID         = membre.MembreGUID;

                // Tester les limitations avant d'ajouter la question
                if (SessionState.Limitations.LimiteQuestions)
                {
                    Tools.PageValidation("La limite du nombre de Questions : " + SessionState.Limitations.NombreQuestions + " est atteinte.<br/>Contactez l'administrateur.");
                }

                status = PollQuestion.Create(q);
                ValidationMessage.Text += "    status : " + status + "<br/>";
                SessionState.Limitations.AjouterQuestion();

                PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                foreach (PollAnswer reponse in reponses)
                {
                    Reporter.Trace("PollAnswer.Create()");

                    ValidationMessage.Text += "----Création de la Réponse : " + reponse.Answer + "<br />";
                    PollAnswer a = new PollAnswer();
                    a.PollQuestionId = q.PollQuestionId;
                    a.Answer         = reponse.Answer;
                    a.TypeReponse    = reponse.TypeReponse;
                    a.Width          = reponse.Width;
                    a.Rows           = reponse.Rows;
                    a.AlignLeft      = reponse.AlignLeft;
                    a.Horizontal     = reponse.Horizontal;
                    a.Obligatoire    = reponse.Obligatoire;
                    a.Rank           = reponse.Rank;
                    a.Score          = reponse.Score;

                    status = PollAnswer.Create(a);
                    ValidationMessage.Text += "    status : " + status.ToString() + "<br />";
                }
            } //foreach ( PollQuestion question in questions )

            // Ne laisser faire qu'une copie
            ButtonCopier.Visible = false;

            // BUG05062010
            // NE PAS FAIRE ICI
            //// Creation d'un nouveau Questionnaire
            //// Prendre en compte le nouveau Questionnaire
            //if ( ( int )Cache[ "QuestionnaireExistantID" ] == 0 )
            //{
            //    SessionState.Questionnaires.Add( newquestionnaire );
            //    SessionState.Questionnaire = newquestionnaire;
            //}

            Cache["QuestionnaireID "]        = 0; // fermer le formulaire
            Cache["QuestionnaireExistantID"] = 0;

            // Attention c'est faux Questionnaire.Create() retourn 1 si OK
            if (status != 0)
            {
                ValidationMessage.Text += "Erreur à la copie du Questionnaire status : " + status.ToString() + "<br />";
            }

            Reporter.Trace("Questionnaire copier fin");

            ButtonAjouterQuestion.Visible = true;
        }
    }
    private void BuildDataList()
    {
        DataListQuestion.DataSource = SessionState.QuestionsEnCours;
        DataListQuestion.DataBind();

        // Trouver les Reponses et les Votes
        foreach (DataListItem dli in DataListQuestion.Items)
        {
            DataList dl = new DataList();
            dl = ( DataList )dli.FindControl("DataListReponse");

            HiddenField hf = new HiddenField();
            hf = ( HiddenField )dli.FindControl("PollQuestionId");
            Guid pollQuestionId          = new Guid(hf.Value);
            PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(pollQuestionId);

            dl.DataSource = answers;
            dl.DataBind();

            // Rechercher dans les Votes deja effectues
            if (answers.Count > 0 && SessionState.Votes != null)
            {
                int indexReponse = 0; // Trouver le bon LabelVote dans DataListReponse
                foreach (PollAnswer answer in answers)
                {
                    PollVoteCollection pvc = SessionState.Votes.FindByAnswerID(answer.PollAnswerId);
                    if (pvc.Count >= 1)   // surement un seul mais bon ...
                    {
                        Label lbl = ( Label )dl.Controls[indexReponse].FindControl("LabelVote");
                        lbl.Text     = "X";
                        lbl.CssClass = "LabelQuestionEnCoursVoteDejaFaitStyle";

                        if (TypeReponse.EstTextuelle(answer.TypeReponse))
                        {
                            Label lblVoteTexte = ( Label )dl.Controls[indexReponse].FindControl("LabelVoteTexte");
                            lblVoteTexte.Text = pvc[0].Vote;
                        }
                    }
                    indexReponse += 1;
                }
            }

            // Rechercher dans les Votes en Cours
            if (answers.Count > 0 && SessionState.VotesEnCours != null)
            {
                int indexReponse = 0; // Trouver le bon LabelVote dans DataListReponse
                foreach (PollAnswer answer in answers)
                {
                    PollVoteCollection pvc = SessionState.VotesEnCours.FindByAnswerID(answer.PollAnswerId);
                    if (pvc.Count >= 1)   // surement un seul mais ...
                    {
                        Label lbl = ( Label )dl.Controls[indexReponse].FindControl("LabelVote");
                        lbl.Text = "X";

                        if (TypeReponse.EstTextuelle(answer.TypeReponse))
                        {
                            Label lblVoteTexte = ( Label )dl.Controls[indexReponse].FindControl("LabelVoteTexte");
                            lblVoteTexte.Text = pvc[0].Vote;
                        }
                    }
                    indexReponse += 1;
                }
            }
        }
    }
    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;
    }
Exemple #26
0
    protected void ButtonSupprimer_Click(object sender, EventArgs e)
    {
        if ((int)Cache["QuestionnaireID"] == 0)
        {
            ValidationMessage.Text    += "<br/>Choisir un questionnaire à supprimer.<br/>";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            ValidationMessage.Visible  = true;
        }
        else
        {
            int status       = 0;
            int statusGlobal = 0;

            Questionnaire questionnaire = Questionnaire.GetQuestionnaire(( int )Cache["QuestionnaireID"]);

            Reporter.Trace("Questionnaire delete");

            ValidationMessage.Text += "<br />-----------------------------------------------------<br />";
            ValidationMessage.Text += " Début de la Suppression du Questionnaire <br />";
            ValidationMessage.Text += "-----------------------------------------------------<br />";

            foreach (PollQuestion question in ( PollQuestionCollection )Cache["Questions"])
            {
                PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                foreach (PollAnswer reponse in reponses)
                {
                    PollVoteCollection votes = PollVoteCollection.GetVotes(reponse.PollAnswerId);
                    int nbVotes = PollVoteCollection.NumberOfVotesByAnswer(reponse.PollAnswerId);
                    ValidationMessage.Text += "----- Suppression des votes : " + nbVotes.ToString() + "<br />";
                    foreach (PollVote vote in votes)
                    {
                        status                  = PollVote.Delete(vote.VoteId);
                        statusGlobal            = statusGlobal + status;
                        ValidationMessage.Text += "     status : " + status.ToString() + "<br />";
                    }
                    ValidationMessage.Text += "---- Suppression de la Réponse : " + reponse.Answer + "<br />";
                    status                  = PollAnswer.Delete(reponse.PollAnswerId);
                    statusGlobal            = statusGlobal + status;
                    ValidationMessage.Text += "     status : " + status.ToString() + "<br />";
                }
                ValidationMessage.Text += "--- Suppression de la Question : " + question.Question + "<br />";
                status       = PollQuestion.Delete(question.PollQuestionId);
                statusGlobal = statusGlobal + status;
                SessionState.Limitations.SupprimerQuestion();
                ValidationMessage.Text += "    status : " + status.ToString() + "<br />";
            }

            Reporter.Trace("Questionnaire delete fin");

            //PersonneCollection personnes = PersonneCollection.GetQuestionnaire( ( int )Cache[ "QuestionnaireID" ] );
            ValidationMessage.Text += "</br>";
            ValidationMessage.Text += "Suppression des contacts : " + (( PersonneCollection )Cache["Personnes"]).Count + "<br />";
            foreach (Personne p in ( PersonneCollection )Cache["Personnes"])
            {
                ValidationMessage.Text += p.Nom + " " + p.Prenom + " " + p.EmailBureau + " " + p.Societe + "<br />";
                status                  = Personne.Delete(p.ID_Personne);
                statusGlobal            = statusGlobal + status;
                ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            }
            SessionState.Limitations.SupprimerInterviewes((( PersonneCollection )Cache["Personnes"]).Count);

            MemberInfo membre = MemberInfo.GetMemberInfo(questionnaire.MembreGUID);
            //WebContentCollection webContents = WebContentCollection.GetWebContents( membre.NomUtilisateur, questionnaire.CodeAcces.ToString() );
            ValidationMessage.Text += "</br>";
            ValidationMessage.Text += "Suppression des contenus web : " + (( WebContentCollection )Cache["WebContents"]).Count + "<br />";
            foreach (WebContent wc in ( WebContentCollection )Cache["WebContents"])
            {
                ValidationMessage.Text += wc.Section + " " + wc.Utilisateur + " " + wc.Visualisateur + "<br />";
                status                  = WebContent.Delete(wc.WebContentID);
                statusGlobal            = statusGlobal + status;
                ValidationMessage.Text += "status : " + status.ToString() + "<br />";
            }

            ValidationMessage.Text += "</br>";
            ValidationMessage.Text += "Suppression des scores : " + (( ScoreCollection )Cache["Scores"]).Count + "<br />";
            foreach (Score s in ( ScoreCollection )Cache["Scores"])
            {
                status       = Score.Delete(s.ScoreID);
                statusGlobal = statusGlobal + status;
            }

            ValidationMessage.Text += "Suppression du Questionnaire : " + questionnaire.Description + "<br />";
            status       = Questionnaire.Delete(questionnaire.QuestionnaireID);
            statusGlobal = statusGlobal + status;
            SessionState.Limitations.SupprimerQuestionnaire();
            ValidationMessage.Text   += "status : " + status.ToString() + "<br />";
            ValidationMessage.Text   += "<br />status global : " + statusGlobal.ToString() + "<br />";
            ValidationMessage.Visible = true;

            // Forcer les Questionnaires a se recharger depuis la Base de Donnees
            SessionState.Questionnaires = null;
            SessionState.Questionnaire  = null;
            Cache["QuestionnaireID"]    = 0; // fermer le formulaire

            // On ne supprime qu'une fois !
            ButtonSupprimer.Visible = false;
        }
    }
    protected void ButtonValiderQuestionnaire_Click(object sender, EventArgs e)
    {
        if (Request.QueryString["valider"] != null)
        {
            if (Request.QueryString["valider"].ToString() == "2")
            {
                Page.Response.Redirect("~/Poll/Termine.Aspx", true);
            }
        }

        if (SessionState.QuestionsEnCours.Count <= 0)
        {
            ValidationMessage.Text   += "Pas de questions en cours.";
            ValidationMessage.Visible = true;
            return;
        }

        if (SessionState.VotesEnCours.Count <= 0)
        {
            // L'interviewe a deja clique sur le bouton
            if (ValidationMessage.Text == "Pas de réponses en cours.")
            {
                Page.Response.Redirect("~/Poll/Termine.Aspx", true);
            }

            ValidationMessage.Text   += "Pas de réponses en cours.";
            ValidationMessage.Visible = true;
            return;
        }

        int statusGlobal = 0;

        Session["_VotesEnCoursCount"] = SessionState.VotesEnCours.Count;
        foreach (PollQuestion question in SessionState.QuestionsEnCours)
        {
            PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
            foreach (PollAnswer answer in answers)
            {
                PollVoteCollection pvc = SessionState.VotesEnCours.FindByAnswerID(answer.PollAnswerId);
                if (pvc.Count > 0)
                {
                    foreach (PollVote vote in pvc)
                    {
                        if (HttpContext.Current.User.Identity.IsAuthenticated == false)
                        {
                            Limitation limitation = new Limitation(SessionState.Questionnaire.MembreGUID);
                            if (limitation.LimitesReponses)
                            {
                                Context.Response.Redirect(Tools.PageErreurPath + "Désolé mais le nombre de réponses pour ce questionnaire est atteinte.", true);
                            }

                            int status = PollVote.Create(vote);
                            if (status != 1)
                            {
                                statusGlobal += 1;
                            }
                        }
                        SessionState.Votes.Add(vote);
                        SessionState.VotesEnCours.Remove(vote);
                    }
                }
            }
        }

        if (statusGlobal != 0)
        {
            ValidationMessage.Text   += "Erreur à la création des votes : " + statusGlobal.ToString();
            ValidationMessage.Visible = true;
            return;
        }

        if (Request.QueryString["fin"] != null)
        {
            Page.Response.Redirect("~/Poll/QuestionnaireEnCours.aspx?valider=2", true);
        }
        Page.Response.Redirect("~/Poll/QuestionnaireEnCours.aspx?valider=1", true);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            ScoreCollection scores = ScoreCollection.GetScoreQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
            if (scores.Count > 0)
            {
                PanelScore.Visible = true;

                int scoreTotal      = 0;
                int scoreInterviewe = 0;
                foreach (PollQuestion question in SessionState.Questions)
                {
                    PollAnswerCollection answers = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                    foreach (PollAnswer answer in answers)
                    {
                        PollVoteCollection pvc = SessionState.Votes.FindByAnswerID(answer.PollAnswerId);
                        if (pvc.Count > 0)
                        {
                            foreach (PollVote vote in pvc)
                            {
                                scoreInterviewe += answer.Score;
                            }
                        }
                        scoreTotal += answer.Score;
                    }
                }

                LabelResultat.Text = "Vous avez un score de " + scoreInterviewe.ToString() + " sur un total de " + scoreTotal.ToString();
                foreach (Score score in scores)
                {
                    if (scoreInterviewe >= score.ScoreMin && scoreInterviewe <= score.ScoreMax)
                    {
                        LabelScoreTexte.Text += score.ScoreTexte;
                    }
                }
            }

            // Ne pas envoyer d'email quand c'est un intervieweur ou l'admin
            if (User.Identity.IsAuthenticated == false)
            {
                MemberInfo     membre         = MemberInfo.Get(SessionState.Questionnaire.MembreGUID);
                MemberSettings memberSettings = MemberSettings.GetMemberSettings(membre.NomUtilisateur);
                if (memberSettings.PrevenirNouvelleReponse)
                {
                    string sujetEmail = "Nouvelle réponse au questionnaire " + SessionState.Questionnaire.Description;
                    string bodyEmail  = "";
                    if (SessionState.Questionnaire.Anonymat == false)
                    {
                        bodyEmail += "Nom : " + SessionState.Personne.Nom + "<br/>";
                        bodyEmail += "Prénom : " + SessionState.Personne.Prenom + "<br/>";
                        bodyEmail += "Email : " + SessionState.Personne.EmailBureau + "<br/>";
                        bodyEmail += "Téléphone : " + SessionState.Personne.TelephonePerso + "<br/>";
                    }
                    Limitation limitations = new Limitation(membre.MembreGUID);
                    bodyEmail += "<br/>Abonnement crédits réponses : " + (limitations.NombreReponses - limitations.Reponses).ToString() + "<br/>";
                    bodyEmail += "<br/>Accès à l'application :<br/>" + string.Format("<a href=\"{0}\" >{1}</a>", Utils.WebSiteUri, Utils.WebSiteUri) + "<br/>";

                    //Courriel.EnvoyerEmailNouvelleReponse( sujetEmail, bodyEmail );
                    Guid smtpMembreGUID = SessionState.Questionnaire.MembreGUID;
                    Courriel.EnvoyerEmailNouvelleReponseAssynchrone(smtpMembreGUID, sujetEmail, bodyEmail);
                }
            }
        }
    }
    /// <summary>
    /// !!!!!!!!!!!!!
    /// Attention !!!
    /// !!!!!!!!!!!!!
    /// Je ne peux pas utiliser cette fonction pour copier un questionnaire pour un utilisateur non authentifie
    /// On ne peut pas utiliser SessionState pour un utilisateur non authentifie
    /// lorsque l'utilisateur s'enregsitre mais qu'il n'est pas encore totalement authentifié
    /// SessionSate crée des Erreurs d'un autre monde !!!
    /// Si je voulais réintrégrer ce code dans Questionnaire/Copier.aspx il faudrait prendre cette précaution
    /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    /// Ce jour là il y a 5 nouveaux utilisateurs qui ce sont enregistrés !
    /// </summary>
    /// <param name="QuestionnaireID"></param>
    /// <param name="MembreGUID"></param>
    /// <param name="QuestionnaireExistantID"></param>
    /// <returns></returns>
    public static string CopierQuestionnaire(int QuestionnaireID, Guid MembreGUID, int QuestionnaireExistantID)
    {
        string message = "";
        string msg     = "";

        if (QuestionnaireID == 0)
        {
            message += "Choisir un questionnaire à copier.<br/>";
        }
        else
        {
            int           status           = 0;
            MemberInfo    membre           = MemberInfo.GetMemberInfo(MembreGUID);
            Questionnaire questionnaire    = Questionnaire.GetQuestionnaire(QuestionnaireID);
            Questionnaire newquestionnaire = new Questionnaire();

            // Calculer un nouveau CodeAcces avant de pouvoir Copier le Questionnaire
            ArrayList codes     = QuestionnaireDAL.GetCodeAccessAll();
            string    codeAcces = Tools.CalculCodeAcces(membre.MembreID, codes).ToString();

            // Creation d'un nouveau Questionnaire
            if (QuestionnaireExistantID == 0)
            {
                newquestionnaire.Description  = questionnaire.Description;
                newquestionnaire.Style        = questionnaire.Style;
                newquestionnaire.Valider      = questionnaire.Valider;
                newquestionnaire.Fin          = questionnaire.Fin;
                newquestionnaire.Anonyme      = questionnaire.Anonyme;
                newquestionnaire.Compteur     = questionnaire.Compteur;
                newquestionnaire.DateCreation = DateTime.Now;
                newquestionnaire.MembreGUID   = MembreGUID;
                newquestionnaire.CodeAcces    = int.Parse(codeAcces);

                message += "<br />Création du Questionnaire : " + newquestionnaire.Description + ":" + newquestionnaire.CodeAcces + "<br />";
                if (HttpContext.Current.User.IsInRole("Administrateur"))
                {
                    message += "Pour le membre : " + membre.NomUtilisateur + "/" + membre.Nom + "/" + membre.Prenom + "<br />";
                }

                //BUG00020100215
                //if ( SessionState.Limitations.LimiteQuestionnaires )
                //{
                //    Tools.PageValidation( "La limite du nombre de Questionnaires : " + SessionState.Limitations.NombreQuestionnaires + " est atteinte.<br/>Contactez l'administrateur." );
                //}

                status = Questionnaire.Create(newquestionnaire);
                if (status == 1)
                {
                    msg     += "Copie du questionnaire d'exemple.<br/>";
                    message += "Questionnaire créé correctement.<br/>";
                    //BUG00020100215
                    //SessionState.Limitations.AjouterQuestionnaire();
                }
                else if (status == 2)
                {
                    msg     += "Erreur à la copie du questionnaire exemple.<br/>";
                    message += "Le Questionnaire existe déjà.<br/>";
                }
                else
                {
                    msg     += "Erreur à la copie du questionnaire exemple.<br/>";
                    message += "Erreur sur la création du Questionnaire<br/>";
                }
            }
            else // Questionnaire existant
            {
                newquestionnaire = Questionnaire.GetQuestionnaire(QuestionnaireExistantID);

                message += "<br />Copie du Questionnaire : " + newquestionnaire.Description + ":" + newquestionnaire.CodeAcces + "<br />";
                message += "Pour le membre : " + membre.NomUtilisateur + "/" + membre.Nom + "/" + membre.Prenom + "<br />";
            }

            int rank = 0;
            // Conserver le rang des Questions avec un biais MaxRank
            if (QuestionnaireExistantID != 0)
            {
                PollQuestionCollection questionsExistantes = PollQuestionCollection.GetByQuestionnaire(QuestionnaireExistantID);
                rank = questionsExistantes.MaxRank() + 1;
            }

            PollQuestionCollection questions = PollQuestionCollection.GetByQuestionnaire(QuestionnaireID);
            foreach (PollQuestion question in questions)
            {
                message += "----Création de la Question : " + question.Question + "<br />";
                PollQuestion q = new PollQuestion();
                q.Question           = question.Question;
                q.Rank               = question.Rank + rank; // Ajouter le Biais
                q.Societe            = question.Societe;
                q.Obligatoire        = question.Obligatoire;
                q.Fin                = question.Fin;
                q.ChoixMultiple      = question.ChoixMultiple;
                q.ChoixMultipleMin   = question.ChoixMultipleMin; //BUG20100330
                q.ChoixMultipleMax   = question.ChoixMultipleMax;
                q.CreationDate       = DateTime.Now;
                q.Instruction        = question.Instruction;
                q.Message            = question.Message;
                q.MessageHaut        = question.MessageHaut;
                q.SautPage           = question.SautPage;
                q.Tableau            = question.Tableau;
                q.AlignementQuestion = question.AlignementQuestion;
                q.AlignementReponse  = question.AlignementReponse;
                q.QuestionnaireID    = newquestionnaire.QuestionnaireID;
                q.MembreGUID         = membre.MembreGUID;

                //BUG00020100215
                //// Tester les limitations avant d'ajouter la question
                //if ( SessionState.Limitations.LimiteQuestions )
                //{
                //    Tools.PageValidation( "La limite du nombre de Questions : " + SessionState.Limitations.NombreQuestions + " est atteinte.<br/>Contactez l'administrateur." );
                //}

                status   = PollQuestion.Create(q);
                message += "    status : " + status + "<br/>";
                //BUG00020100215
                //SessionState.Limitations.AjouterQuestion();

                PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                foreach (PollAnswer reponse in reponses)
                {
                    message += "----Création de la Réponse : " + reponse.Answer + "<br />";
                    PollAnswer a = new PollAnswer();
                    a.PollQuestionId = q.PollQuestionId;
                    a.Answer         = reponse.Answer;
                    a.TypeReponse    = reponse.TypeReponse;
                    a.Width          = reponse.Width;
                    a.Rows           = reponse.Rows;
                    a.AlignLeft      = reponse.AlignLeft;
                    a.Horizontal     = reponse.Horizontal;
                    a.Obligatoire    = reponse.Obligatoire;
                    a.Rank           = reponse.Rank;
                    a.Score          = reponse.Score;

                    status   = PollAnswer.Create(a);
                    message += "    status : " + status.ToString() + "<br />";
                }
            } //foreach ( PollQuestion question in questions )

            // Ne laisser faire qu'une copie
            //ButtonCopier.Visible = false;

            //
            // Attention BUG l'acces a SessionState cree un BUG d'un autre monde
            //
            // peut pas evaluer l'exepression car trop en haut de la pile
            //SessionState.Questionnaire = newquestionnaire;

            // Creation d'un nouveau Questionnaire
            //if ( QuestionnaireExistantID == 0 )
            //{
            //    SessionState.Questionnaires.Add( newquestionnaire );
            //}

            QuestionnaireID         = 0; // fermer le formulaire
            QuestionnaireExistantID = 0;

            // Attention c'est faux Questionnaire.Create() retourn 1 si OK
            if (status != 0)
            {
                message += "Erreur à la copie du Questionnaire status : " + status.ToString() + "<br />";
            }

            //ButtonAjouterQuestion.Visible = true;
        }

        //return message;
        return(msg);
    }
    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"];
        }
    }
    // BUG10092009 remplace par l'utilisation du cache
    //private int QuestionnaireID
    //{
    //    get
    //    {
    //        if ( ViewState[ "QuestionnaireID" ] == null )
    //        {
    //            ViewState[ "QuestionnaireID" ] = 0;
    //        }
    //        return ( int )ViewState[ "QuestionnaireID" ];
    //    }
    //    set { ViewState[ "QuestionnaireID" ] = value; }
    //}

    //private int QuestionnaireExistantID
    //{
    //    get
    //    {
    //        if ( ViewState[ "QuestionnaireExistantID" ] == null )
    //        {
    //            ViewState[ "QuestionnaireExistantID" ] = 0;
    //        }
    //        return ( int )ViewState[ "QuestionnaireExistantID" ];
    //    }
    //    set { ViewState[ "QuestionnaireExistantID" ] = value; }
    //}

    //private Guid MembreGUID
    //{
    //    get
    //    {
    //        if ( ViewState[ "MembreGUID" ] == null )
    //        {
    //            ViewState[ "MembreGUID" ] = Guid.Empty;
    //        }
    //        return ( Guid )ViewState[ "MembreGUID" ];
    //    }
    //    set { ViewState[ "MembreGUID" ] = value; }
    //}

    //private int CodeAcces
    //{
    //    get
    //    {
    //        if ( ViewState[ "CodeAcces" ] == null )
    //        {
    //            ViewState[ "CodeAcces" ] = 0;
    //        }
    //        return ( int )ViewState[ "CodeAcces" ];
    //    }
    //    set { ViewState[ "CodeAcces" ] = value; }
    //}

    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (IsPostBack == false)
        {
            if (Request.QueryString["MembreGUID"] != null)
            {
                Cache["MembreGUID"] = new Guid(Request.QueryString["MembreGUID"].ToString());
            }
            else
            {
                ValidationMessage.Text   += "Erreur pas de Questionnaire à copier !<br/>";
                ValidationMessage.Visible = true;
            }

            Cache["CodeAcces"] = 0;
            if (Request.QueryString["CodeAcces"] != null)
            {
                Cache["CodeAcces"] = int.Parse(Request.QueryString["CodeAcces"].ToString());
            }

            Cache["QuestionnaireExistantID"] = 0;
            if (Request.QueryString["QuestionnaireExistantID"] != null)
            {
                Cache["QuestionnaireExistantID"] = int.Parse(Request.QueryString["QuestionnaireExistantID"].ToString());
            }

            if (( int )Cache["CodeAcces"] == 0 && (( int )Cache["QuestionnaireExistantID"]) == 0)
            {
                ValidationMessage.Text   += "Erreur pas de code d'accès !<br/>";
                ValidationMessage.Text   += "Pas de Questionnaire à copier !<br/>";
                ValidationMessage.Visible = true;
            }

            if (Request.QueryString["QuestionnaireID"] != null)
            {
                Cache["QuestionnaireID "] = int.Parse(Request.QueryString["QuestionnaireID"]);
                Questionnaire questionnaire = Questionnaire.GetQuestionnaire(( int )Cache["QuestionnaireID "]);
                ValidationMessage.Text += "Copie du Questionnaire : " + questionnaire.Description + ":" + questionnaire.CodeAcces + "<br />";

                MemberInfo membre = MemberInfo.GetMemberInfo(( Guid )Cache["MembreGUID"]);
                if (User.IsInRole("Administrateur"))
                {
                    ValidationMessage.Text += "Pour le membre : " + membre.NomUtilisateur + "/" + membre.Nom + "/" + membre.Prenom + "<br />";
                }
                if (( int )Cache["CodeAcces"] != 0 && ( int )Cache["CodeAcces"] != questionnaire.CodeAcces && ( int )Cache["QuestionnaireExistantID"] == 0)
                {
                    ValidationMessage.Text += "Nouveau code d'accès : " + ( int )Cache["CodeAcces"] + "<br />";
                }
                ValidationMessage.Text += "<br />";

                Cache["Questions"] = PollQuestionCollection.GetByQuestionnaire(( int )Cache["QuestionnaireID "]);
                foreach (PollQuestion question in (PollQuestionCollection)Cache["Questions"])
                {
                    ValidationMessage.Text += "- Question : " + question.Question + "<br />";
                    PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);
                    foreach (PollAnswer reponse in reponses)
                    {
                        ValidationMessage.Text += "-- Réponse : " + reponse.Answer + "<br />";
                    }
                }

                if (( int )Cache["QuestionnaireExistantID"] != 0)
                {
                    questionnaire           = Questionnaire.GetQuestionnaire(( int )Cache["QuestionnaireExistantID"]);
                    ValidationMessage.Text += "<br />";
                    ValidationMessage.Text += "Pour le Questionnaire : " + questionnaire.Description + ":" + questionnaire.CodeAcces + "<br />";
                }

                ValidationMessage.Visible = true;
            }
        }
    }
    void AfficherToutLesVotesEnBas(Guid pollQuestionID)
    {
        PanelReponsesEnBas.Controls.Clear();

        bool afficherDateVote = SessionState.CheckBox["CheckBoxAfficherDateVote"];
        PollQuestionCollection pollQuestionCollection = PollQuestionCollection.GetByQuestionnaire(SessionState.Questionnaire.QuestionnaireID);

        // On cumul les Questions cliquees par l'utilisateur
        if (pollQuestionID != Guid.Empty)
        {
            // La Collection se reduit a une seule Question
            PollQuestion pollQuestion = pollQuestionCollection.FindByPollQuestionID(pollQuestionID);

            // Cumuler les questions cliquees par l'utilisateur
            // Sauf si elle est deja dans QuestionsVotesEnBas
            //   cela permet d'eviter de cumuler encore quand on passe aux formulaires print ou excel
            bool trouve = false;
            foreach (PollQuestion q in QuestionsVotesEnBas)
            {
                if (q.PollQuestionId == pollQuestionID)
                {
                    trouve = true;
                    break;
                }
            }
            if (trouve == false)
            {
                QuestionsVotesEnBas.Add(pollQuestion);
            }
        }
        else
        {
            // On prend toutes les questions du questionnaire
            QuestionsVotesEnBas = pollQuestionCollection;
        }

        // Si une sous-population est a l'etude on affiche que cette sous-population AME13072010
        PersonneCollection personnesAffichees = new PersonneCollection();

        PollVoteCollection[] tableauPollVotespersonnesAffichees;
        if (PersonnesOntReponduATout.Count > 0)
        {
            personnesAffichees = PersonnesOntReponduATout;
            // Il faut reafficher PanelReponse sinon il disparait
            // Attention ici on est appellé par ListBoxQui_SelectedIndexChange donc on doit faire un Clear
            PanelReponses.Controls.Clear();
            AfficherEnHautReponsesDeSousPopulation();
            tableauPollVotespersonnesAffichees = TableauVotesPersonnesOntReponduATout;
        }
        else
        {
            personnesAffichees = Personnes;
            tableauPollVotespersonnesAffichees = TableauVotesPersonnes;
        }

        foreach (PollQuestion question in QuestionsVotesEnBas)
        {
            PollAnswerCollection reponses = PollAnswerCollection.GetByPollQuestionID(question.PollQuestionId);

            Label labelQ = new Label();
            labelQ.CssClass = "LabelQuestionStyle";
            labelQ.Text     = question.Rank.ToString() + " - " + question.Question;

            Table     tableQ = new Table();
            TableCell cellQ  = new TableCell();
            TableRow  rowQ   = new TableRow();

            cellQ.Controls.Add(labelQ);
            rowQ.Controls.Add(cellQ);
            tableQ.Controls.Add(rowQ);
            PanelReponsesEnBas.Controls.Add(tableQ);

            foreach (PollAnswer reponse in reponses)
            {
                Table     tableR = new Table();
                TableCell cellR  = new TableCell();
                TableRow  rowR   = new TableRow();

                Label labelR = new Label();
                labelR.CssClass = "HyperLinkQuestionEnCoursStyle";
                if (FormulaireEnModeExcel)
                {
                    labelR.Text = "r : "; // ajouter un petit " r : " pour que ce con d'excel ne prenne pas ca pour une date
                }
                labelR.Text += reponse.Rank.ToString() + " - " + reponse.Answer;

                cellR.Controls.Add(labelR);
                rowR.Controls.Add(cellR);
                tableR.Controls.Add(rowR);
                PanelReponsesEnBas.Controls.Add(tableR);

                Table tableP = new Table();

                int indexPollVotes = 0;
                foreach (Personne p in personnesAffichees)
                {
                    PollVoteCollection pvc      = tableauPollVotespersonnesAffichees[indexPollVotes].FindByAnswerID(reponse.PollAnswerId);
                    string             personne = FormatPersonne(p);

                    foreach (PollVote pv in pvc)
                    {
                        // Table de Reponses des Interviewes
                        TableCell cellP = new TableCell();
                        TableRow  rowP  = new TableRow();

                        if (afficherDateVote)
                        {
                            TableCell cellD = new TableCell();
                            cellD.Text = pv.CreationDate.ToString();
                            rowP.Cells.Add(cellD);
                        }

                        cellP.Text     = personne; // OPT17072010 Strings.TexteToHTML( personne );
                        cellP.CssClass = "TableReponsePersonneStyle";
                        rowP.Cells.Add(cellP);
                        tableP.Rows.Add(rowP);
                        // Pour les reponses textuelles
                        if (pv.Vote != "")
                        {
                            TableCell cellV = new TableCell();
                            cellV.Text = Strings.TexteToHTML(pv.Vote);
                            rowP.Cells.Add(cellV);
                            tableP.Rows.Add(rowP);
                        }
                    }
                    if (pvc.Count > 0 /* votant */)
                    {
                        PanelReponsesEnBas.Controls.Add(tableP);
                    }
                    indexPollVotes += 1;
                }
            }
        }
    }