/// <summary>
    /// Calcul des limitations pour un utilisateur authentifié
    /// pour un utilisateur non authentifie, on ne peut pas utiliser SessionState qui vaut n'importe quoi
    /// </summary>
    public Limitation()
    {
        //
        // Calcul des Objets du membre
        //
        _Reponses = MemberInfo.GetMemberRepondantCount(SessionState.MemberInfo.MembreGUID);

        _Questionnaires = SessionState.Questionnaires.Count;
        foreach (Questionnaire q in SessionState.Questionnaires)
        {
            // Interviewes
            PersonneCollection personnes = PersonneCollection.GetQuestionnaire(q.QuestionnaireID);
            _Interviewes += personnes.Count;

            PollQuestionCollection questionCollection = PollQuestionCollection.GetByQuestionnaire(q.QuestionnaireID);
            _Questions += questionCollection.Count;
        }

        //
        // Les Limitations du membre
        //
        _NombreQuestionnaires = SessionState.MemberInfo.LimiteQuestionnaires;
        _NombreReponses       = SessionState.MemberInfo.LimiteReponses;
        _NombreInterviewes    = SessionState.MemberInfo.LimiteInterviewes;
        _NombreQuestions      = SessionState.MemberInfo.LimiteQuestions;

        // Role du membre
        userIsAdministrateur = Roles.IsUserInRole(SessionState.MemberInfo.NomUtilisateur, "Administrateur");
    }
Example #2
0
        /// <summary>
        /// Lecture du fichier au format CVS creation d'une personne et creation dans la database
        /// </summary>
        /// <param name="fileName">le fichier</param>
        /// <param name="createInDataBase"> créer la personne dans la database</param>
        /// <param name="personnes">sinon c'est la collection de personnes</param>
        /// <returns></returns>
        public static string ImportFile(string fileName)
        {
            PersonneCollection personnes = null;
            string             status    = ImportFile(fileName, ref personnes);

            return(status);
        }
    // Pour un utilisateur non authentifie
    // ou pour l'administrateur qui cherche a connaitre les infos du membre
    public Limitation(Guid membreGUID)
    {
        _Reponses = MemberInfo.GetMemberRepondantCount(membreGUID);

        QuestionnaireCollection qc = QuestionnaireCollection.GetQuestionnaireMembre(membreGUID);

        _Questionnaires = qc.Count;
        foreach (Questionnaire q in qc)
        {
            // Interviewes
            PersonneCollection personnes = PersonneCollection.GetQuestionnaire(q.QuestionnaireID);
            _Interviewes += personnes.Count;

            PollQuestionCollection repCollection = PollQuestionCollection.GetByQuestionnaire(q.QuestionnaireID);
            _Questions += repCollection.Count;
        }

        MemberInfo member = MemberInfo.GetMemberInfo(membreGUID);

        _NombreQuestionnaires = member.LimiteQuestionnaires;
        _NombreReponses       = member.LimiteReponses;
        _NombreInterviewes    = member.LimiteInterviewes;
        _NombreQuestions      = member.LimiteQuestions;

        MembershipUser user = Membership.GetUser(membreGUID);

        userIsAdministrateur = Roles.IsUserInRole(user.UserName, "Administrateur");
    }
Example #4
0
 public Film()
 {
     this._Acteurs      = new PersonneCollection();
     this._Realisateurs = new PersonneCollection();
     this._ListeCover   = new ObservableCollection <Thumb>();
     this._ListeFanart  = new ObservableCollection <Thumb>();
     this._ListeThumb   = new ObservableCollection <Thumb>();
 }
    // Formater et Calculer les elements de la DataList
    protected void DataListMembreQuestionnaire_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Label labelDateCreation = ( Label )e.Item.FindControl("LabelDateCreation");
            labelDateCreation.Text = labelDateCreation.Text.Substring(0, 10);

            HiddenField hiddenFieldQuestionnaireID = ( HiddenField )e.Item.FindControl("HiddenFieldQuestionnaireID");
            int         questionnaireID            = int.Parse(hiddenFieldQuestionnaireID.Value);

            //
            // Calcul du nombre d'interviewes pour ce Questionnaire
            //
            PersonneCollection personnes = PersonneCollection.GetQuestionnaire(questionnaireID);
            Label labelNombreContacts    = ( Label )e.Item.FindControl("labelNombreContacts");
            labelNombreContacts.Text = personnes.Count.ToString();
            if (personnes.Count == 0)
            {
                labelNombreContacts.ForeColor = System.Drawing.Color.Black;
            }

            //
            // Calculer le nombre de Votants
            //
            int votants = 0;
            PollVoteCollection pollVotes = PollVoteCollection.GetPollVotesByQuestionnaireID(questionnaireID);
            foreach (Personne p in personnes)
            {
                if (pollVotes.ADejaVote(p.PersonneGUID))
                {
                    votants += 1;
                }
            }

            // Nombre de Votants pour ce Questionnaire
            Label labelVotes = ( Label )e.Item.FindControl("LabelVotes");
            labelVotes.Text = votants.ToString();
            if (votants == 0)
            {
                labelVotes.ForeColor = System.Drawing.Color.Black;
            }

            //
            // Calculer le nombre de Questions
            //
            Questionnaire          quest = SessionState.Questionnaires.FindByID(questionnaireID);
            PollQuestionCollection pollAnswerCollection = PollQuestionCollection.GetByQuestionnaire(quest.QuestionnaireID);

            // Nombre de Votants pour ce Questionnaire
            Label labelQuestions = ( Label )e.Item.FindControl("LabelQuestions");
            labelQuestions.Text = pollAnswerCollection.Count.ToString();
            if (pollAnswerCollection.Count == 0)
            {
                labelQuestions.ForeColor = System.Drawing.Color.Black;
            }
        }
    }
Example #6
0
 public Film()
 {
     this._actors      = new PersonneCollection();
     this._directors   = new PersonneCollection();
     this._credits     = new PersonneCollection();
     this._ListeCover  = new ObservableCollection <Thumb>();
     this._ListeFanart = new ObservableCollection <Thumb>();
     this._ListeThumb  = new ObservableCollection <Thumb>();
     this._ratings     = new ObservableCollection <Rating>();
 }
Example #7
0
        /// <summary>
        /// Creer la table "traduire" la table au format CSV
        /// </summary>
        // On remarque que toutes les infos ne sont extraites du carnet d'adresse
        public static DataTable CreateTable()
        {
            ArrayList         entetes  = new ArrayList();
            ColonneCollection colonnes = new ColonneCollection(HeaderColumns);

            for (int i = 0; i < colonnes.Count; i++)
            {
                // Pas de ";" pour la derniere colonne
                if (i < colonnes.Count - 1)
                {
                    entetes.Add(colonnes[i].Nom + ";");
                }
                else
                {
                    entetes.Add(colonnes[i].Nom);
                }
            }

            DataTable dt = new DataTable();

            foreach (string entete in entetes)
            {
                DataColumn colonne = new DataColumn(entete, System.Type.GetType("System.String"));
                dt.Columns.Add(colonne);
            }

            PersonneCollection personnes = PersonneCollection.GetAll();

            foreach (Personne p in personnes)
            {
                DataRow dr;
                dr = dt.NewRow();

                dr[entetes[0].ToString()]  = p.Civilite + ";";
                dr[entetes[1].ToString()]  = p.Nom + ";";
                dr[entetes[2].ToString()]  = p.Prenom + ";";
                dr[entetes[3].ToString()]  = p.EmailBureau + ";";
                dr[entetes[4].ToString()]  = p.Adresse + ";";
                dr[entetes[5].ToString()]  = p.Ville + ";";
                dr[entetes[6].ToString()]  = p.CodePostal + ";";
                dr[entetes[7].ToString()]  = p.TelephonePerso + ";";
                dr[entetes[8].ToString()]  = p.TelephoneBureau + ";";
                dr[entetes[9].ToString()]  = p.TelephoneMobile + ";";
                dr[entetes[10].ToString()] = p.Fax + ";";
                dr[entetes[11].ToString()] = p.Societe + ";";
                dr[entetes[12].ToString()] = p.Fonction + ";";
                dr[entetes[13].ToString()] = p.LienHTML + ";";
                dr[entetes[14].ToString()] = p.Memo;     //+ ";";

                dt.Rows.Add(dr);
            }

            return(dt);
        }
    protected void DropDownListQuestionnaires_SelectedIndexChanged(object sender, EventArgs e)
    {
        SessionState.Questionnaire = SessionState.Questionnaires[DropDownListQuestionnaires.SelectedIndex];
        Votes     = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID);
        Personnes = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID);

        EffacerSousPopulation();
        PanelSousPopulation.Visible = false;
        AfficherTousLesVotes        = false;

        Response.Redirect("~/Poll/QuestionnaireStatAll.aspx");
    }
Example #9
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;
            }
        }
    }
    // Initialiser le Tableau des votes des Personnes OPT17072010
    private void initTableauVotesPersonnes(int nbPersonnes, PersonneCollection personnes)
    {
        int indexPollVotes = 0;
        int nbVotes        = 0;

        PollVoteCollection[] tableauPollVotes = new PollVoteCollection[nbPersonnes];
        foreach (Personne p in personnes)
        {
            tableauPollVotes[indexPollVotes] = Votes.FindByPersonneGUID(p.PersonneGUID);
            nbVotes        += tableauPollVotes[indexPollVotes].Count;
            indexPollVotes += 1;
        }
        TableauVotesPersonnes = tableauPollVotes;
        NombreVotesPersonnes  = nbVotes;
    }
Example #11
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string _TableauSepare = string.Empty;

            PersonneCollection _TableauOrigine = value as PersonneCollection;

            if (_TableauOrigine.Count != 0)
            {
                foreach (Personne item in _TableauOrigine)
                {
                    _TableauSepare += item.Nom + ", ";
                }
                if (_TableauSepare.Length > 0)
                {
                    _TableauSepare = _TableauSepare.Substring(0, _TableauSepare.Length - 2);
                }
            }
            return(_TableauSepare);
        }
    void CalculerVotants()
    {
        PersonneCollection pc = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID);

        LabelNombreContacts.Text = pc.Count.ToString();
        int nbVotant = 0;

        foreach (Personne p in pc)
        {
            //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)
            {
                nbVotant = nbVotant + 1;
            }
        }
        LabelVotes.Text = nbVotant.ToString();
    }
    protected void Page_Load( object sender, EventArgs e )
    {
        // Un truc bisard : un bas du Page_Load ca marche pas ?
        InititializeCaptcha();

        if ( IsPostBack == false )
        {
            // Mode par defaut du Formulaire
            ModeFormulaire = Mode.AdresseEmail;

            if ( Request.QueryString[ "mod" ] != null )
            {
                int mode = ( int )Mode.AdresseEmail;
                try
                {
                    mode = int.Parse( Request.QueryString[ "mod" ] );
                }
                catch
                {
                    ValidationMessage.Text = "Mode du formulaire incorrecte";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    ValidationMessage.Visible = true;
                    return;
                }
                switch ( mode )
                {
                    case 1:
                        ModeFormulaire = Mode.AdresseEmail;
                        break;
                    case 2:
                        ModeFormulaire = Mode.Telephone;
                        break;
                }
            }

            // Mise en mode du formulaire
            FormulaireEnMode( ModeFormulaire ); 

            bool authentifie = false;

            // Authentification automatique de l'interviewe
            if ( Request[ "guid" ] != null )
            {
                string guid = Request[ "guid" ].ToString();
                PersonneCollection personnes = PersonneCollection.GetAll();
                foreach ( Personne p in personnes )
                {
                    if ( p.PersonneGUID == new Guid( guid )  )
                    {
                        authentifie = true;
                        SessionState.Personne = p;
                        break;
                    }
                }

                // BUG02122009
                if ( authentifie == false && User.Identity.IsAuthenticated == false )
                {
                    SessionState.ValidationMessage = "Désolé mais votre ticket pour répondre à ce questionnaire n'est pas valable.";
                    ValidationMessage.Text = SessionState.ValidationMessage;
                    ValidationMessage.Visible = true;
                    WebContentLoginContact.Visible = false;
                    PanelLoginContact.Visible = false;
                    return;
                }
            }

            if ( authentifie == true )
            {
                // Entree dans l'application
                //FormsAuthentication.SignOut(); // Deconnecter un eventuel utilisateur 
                // NON on peut pas sinon la case "Memoriser ma connexion" ne sert plus a rien
                Response.Redirect( "~/Accueil.aspx" );
            }
        }

        ValiderMessage();
    }
    protected void LoginButton_Click( object sender, System.EventArgs e )
    {
        // Est-ce un Robo ?
        if ( Page.IsValid == false || IsCaptchaValid == false )
            Response.Redirect( Tools.PageErreurPath + "IP:" + Request.UserHostAddress.ToString() + "<br/>Coming from:" + Request.UrlReferrer.ToString() + "<br/>Is Robot" );

        // Annulation des variables de Session precedentes
        Session.Clear();
        bool courrielleOK = false;
        bool telephoneOK = false;
        bool codeOK = false;

        if ( Strings.IsValideEmail( TextBoxAdresseCourrielle.Text ) && ModeFormulaire == Mode.AdresseEmail )
        {
            PersonneCollection personnes = PersonneCollection.GetAll();
            foreach ( Personne p in personnes )
            {
                if ( p.EmailBureau == TextBoxAdresseCourrielle.Text.Trim() )
                {
                    courrielleOK = true;
                }
                if ( courrielleOK && p.CodeAcces.ToString() == TextBoxCodeAcces.Text.Trim() )
                {
                    codeOK = true;
                    SessionState.Personne = p;
                    break;
                }
            }
        }

        if ( Strings.IsValideTelephone( TextBoxTelephone.Text ) && ModeFormulaire == Mode.Telephone )
        {
            PersonneCollection personnes = PersonneCollection.GetAll();
            foreach ( Personne p in personnes )
            {
                if ( p.TelephonePerso == TextBoxTelephone.Text.Trim() )
                {
                    telephoneOK = true;
                }
                if ( telephoneOK && p.CodeAcces.ToString() == TextBoxCodeAcces.Text.Trim() )
                {
                    codeOK = true;
                    SessionState.Personne = p;
                    break;
                }
            }
        }

        if ( ( courrielleOK || telephoneOK ) && codeOK )
        {
            FormsAuthentication.SignOut(); // Deconnecter un eventuel utilisateur
            Response.Redirect( "~/Accueil.aspx" );
        }
        else
        {
            SessionState.ValidationMessage = "Désolé mais nous n'avons pas pu vous authentifier.";
            if ( courrielleOK == false && ModeFormulaire == Mode.AdresseEmail )
            {
                SessionState.ValidationMessage += "<br/>L'Adresse courrielle n'est pas valide.";
            }
            if ( telephoneOK == false && ModeFormulaire == Mode.Telephone )
            {
                SessionState.ValidationMessage += "<br/>Le Numéro de téléphone n'est pas valide.";
            }
            if ( codeOK == false )
            {
                SessionState.ValidationMessage += "<br/>Le Code d'accès n'est pas valide.";
            }
            ValiderMessage();
            return;
        }
    }
Example #15
0
        // Creer la table "traduire" la table au format Outlook
        public static DataTable CreateTable()
        {
            ArrayList entetes = new ArrayList();

            // Creer artificiellement une colonne "Titre" vide !
            // on lui baise la gueule a outlook de merde avec son format pourri
            // on remarquera l'espace dans le titre de la colonne sinon erreur :
            // elle existe deja dans le DataTable et c'est la cata ca voudrait
            // qu'on ne peut pas utiliser un DataTable mais ca marche alors
            //entetes.Add( "\"Titre \"," );

            ColonneCollection colonnes = new ColonneCollection(HeaderColumns);

            for (int i = 0; i < colonnes.Count; i++)
            {
                // Pas de "," pour la derniere colonne
                if (i < colonnes.Count - 1)
                {
                    entetes.Add("\"" + colonnes[i].Nom + "\",");
                }
                else
                {
                    entetes.Add("\"" + colonnes[i].Nom + "\"");
                }
            }

            DataTable dt = new DataTable();

            foreach (string entete in entetes)
            {
                DataColumn colonne = new DataColumn(entete, System.Type.GetType("System.String"));
                dt.Columns.Add(colonne);
            }

            PersonneCollection personnes = PersonneCollection.GetAll();

            foreach (Personne p in personnes)
            {
                DataRow dr;
                dr = dt.NewRow();

                dr[entetes[0].ToString()]  = "\"" + p.Civilite + "\",";
                dr[entetes[1].ToString()]  = "\"" + p.Nom + ", " + p.Prenom + "\",";
                dr[entetes[2].ToString()]  = "\"" + p.Prenom + "\",";
                dr[entetes[3].ToString()]  = "\"" + p.Societe + "\",";
                dr[entetes[4].ToString()]  = "\"" + p.Fonction + "\",";
                dr[entetes[5].ToString()]  = "\"" + p.EmailPerso + "\",";
                dr[entetes[6].ToString()]  = "\"" + p.EmailBureau + "\",";
                dr[entetes[7].ToString()]  = "\"" + p.Adresse + "\",";
                dr[entetes[8].ToString()]  = "\"" + p.Ville + "\",";
                dr[entetes[9].ToString()]  = "\"" + p.CodePostal + "\",";
                dr[entetes[10].ToString()] = "\"" + p.TelephonePerso + "\",";
                dr[entetes[11].ToString()] = "\"" + p.TelephoneBureau + "\",";
                dr[entetes[12].ToString()] = "\"" + p.TelephoneMobile + "\",";
                dr[entetes[13].ToString()] = "\"" + p.Fax + "\",";
                dr[entetes[14].ToString()] = "\"" + p.LienHTML + "\",";
                dr[entetes[15].ToString()] = "\"" + p.Memo + "\"";     // pas de virgule pour la derniere valeur

                dt.Rows.Add(dr);
            }

            return(dt);
        }
Example #16
0
        // Transforme la table en string
        public static string ImportFile(string fileName, ref PersonneCollection personnes)
        {
            string       erreurMessage = "";
            FileStream   fs            = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            StreamReader sr            = new StreamReader(fs, Encoding.UTF7);
            string       s             = sr.ReadToEnd();

            fs.Close();
            sr.Close();

            string[] separateurLigne = { "\"Non spécifié\"\r\n", "\"Utilisateur 4\"\r\n" }; // Une hyptohese risquee
            string[] lignes          = s.Split(separateurLigne, StringSplitOptions.RemoveEmptyEntries);
            if (lignes.Length <= 1)
            {
                erreurMessage = "Ce fichier n'est pas au format du carnet outlook.<br>";
                return(erreurMessage);
            }

            string entete = lignes[0];

            char[]   separteurValeur = { ',', '\"' };
            string[] entetes         = entete.Split(separteurValeur, StringSplitOptions.RemoveEmptyEntries);
            if (entetes.Length <= 1)
            {
                erreurMessage = "Ce fichier n'est pas au format du carnet outlook.<br>";
                return(erreurMessage);
            }

            // La deuxieme colonne Nom pose un probleme c'est le nom complet
            // mais on en veut pas d'ou ce caviardage par une colonne qui n'existe pas
            // entetes[ 3 ] = "aaaaaaaaa"; Non faut pas ya pas de non complet dans outlook de merde et si !! putain de bordel quelle merde enfin microsoft est donne son plein potentiel !!
            // outlook de merde on trouve 2 colonnes Titre une pour civlite ou autre pour ...
            // donc ici on ruse a mort

            ColonneCollection cc = new ColonneCollection(HeaderColumns);
            ColonneCollection colonnesExistantes = new ColonneCollection();

            if (entetes[0] == "Titre")
            {
                cc[0].Existe = true;
                cc[0].Indice = 0;
                colonnesExistantes.Add(cc[0]);
                cc.RemoveAt(0);
            }

            foreach (Colonne c in cc)
            {
                for (int i = 1; i < entetes.Length; i++)
                {
                    if (c.Nom.CompareTo(entetes[i]) == 0)
                    {
                        // La colonne existe dans le fichier
                        c.Existe = true;
                        c.Indice = i;
                        colonnesExistantes.Add(c);
                    }
                }
            }

            if (colonnesExistantes.Count <= 0)
            {
                erreurMessage = "Format de fichier non valide.<br>";
                return(erreurMessage);
            }

            //BRY00020100209
            if (SessionState.Limitations.LimitesInterviewesAtteinte(lignes.Length))
            {
                Tools.PageValidation("La limite du nombre d'Interviewés : " + SessionState.Limitations.NombreInterviewes + " est atteinte.<br/>Contactez l'administrateur.");
            }

            // Le split marche dans l'entete car on RemoveEmptyEntries
            // ici on ne peut pas le faire pour garder le bon indice de la place de la valeur
            // et donc on recommence ...
            string[] separateurVal = { "\",\"" };
            for (int i = 1; i < lignes.Length; i++)
            {
                string[] valeurs = lignes[i].Split(',');
                for (int v = 0; v < valeurs.Length; v++)
                {
                    valeurs[v] = SupprimeCaractereDeMerde(valeurs[v]);
                }

                Personne p = new Personne();
                foreach (Colonne c in colonnesExistantes)
                {
                    if (c.Existe)
                    {
                        if (c.Nom == HeaderColumns[0])
                        {
                            p.Civilite = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[1])
                        {
                            p.Nom = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[2])
                        {
                            p.Prenom = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[3])
                        {
                            p.Societe = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[4])
                        {
                            p.Fonction = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[5])
                        {
                            p.EmailPerso = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[6])
                        {
                            p.EmailBureau = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[7])
                        {
                            p.Adresse = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[8])
                        {
                            p.Ville = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[9])
                        {
                            p.CodePostal = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[10])
                        {
                            p.TelephonePerso = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[11])
                        {
                            p.TelephoneBureau = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[12])
                        {
                            p.TelephoneMobile = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[13])
                        {
                            p.Fax = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[14])
                        {
                            p.LienHTML = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[15])
                        {
                            p.Memo = valeurs[c.Indice];
                        }
                    }
                }

                if (personnes == null)
                {
                    int ret = Personne.Create(p, true, ref erreurMessage);
                }
                else
                {
                    personnes.Add(p);
                }
            }

            return(erreurMessage);
        }
    protected void ImageButtonSupprimerListeContacts_Click(object sender, ImageClickEventArgs e)
    {
        ValidationMessage.Text     = "";
        ValidationMessage.CssClass = "LabelValidationMessageStyle";
        ValidationMessage.Visible  = true;

        int countPersonneSupprime = 0;
        int countContactNonValide = 0;
        int status = 0;

        // Tester le format
        if (ContactValideFaconListe(TextBoxContactAjouter.Text))
        {
            string contactSupprimer = TextBoxContactAjouter.Text;
            string separateurDOS    = "\r\n";
            string separateurUnix   = "\r";
            if (contactSupprimer.Contains(separateurDOS) == false)
            {
                if (contactSupprimer.Contains(separateurUnix) == true)
                {
                    ValidationMessage.Text += "Contacts au format Unix à supprimer";
                    contactSupprimer        = Strings.UnixToDos(contactSupprimer);
                }
            }

            string[] separateur = { separateurDOS };
            string[] contacts   = TextBoxContactAjouter.Text.Split(separateur, System.StringSplitOptions.RemoveEmptyEntries);

            // Trim()
            int i = 0;
            foreach (string s in contacts)
            {
                contacts[i] = s.Trim();
                i          += 1;
            }

            PersonneCollection personneCollection = PersonneCollection.GetQuestionnaire(SessionState.Questionnaire.QuestionnaireID);
            PollVoteCollection pollVotes          = PollVoteCollection.GetPollVotesByQuestionnaireID(SessionState.Questionnaire.QuestionnaireID);
            foreach (string contact in contacts)
            {
                if (Strings.IsValideEmail(contact) || Strings.IsValideTelephone(contact))
                {
                    Personne personneTrouve = null;
                    foreach (Personne p in personneCollection)
                    {
                        if (p.EmailBureau == contact || p.TelephonePerso == contact)
                        {
                            personneTrouve = p;
                            break;
                        }
                    }

                    if (personneTrouve != null)
                    {
                        PollVoteCollection pvc = pollVotes.FindByPersonneGUID(personneTrouve.PersonneGUID);

                        // A t il deja vote pour ce questionnaire ?
                        if (pvc.Count > 0)
                        {
                            ValidationMessage.Text += personneTrouve.EmailBureau;
                            if (ValidationMessage.Text != string.Empty)
                            {
                                ValidationMessage.Text += "/" + personneTrouve.TelephonePerso;
                            }
                            else
                            {
                                ValidationMessage.Text += personneTrouve.TelephonePerso;
                            }
                            ValidationMessage.Text += " a déjà voté<br />";
                        }
                        else
                        {
                            status += Personne.Delete(personneTrouve.ID_Personne);
                            if (status != 0)
                            {
                                ValidationMessage.Text += "Erreur à la suppression du contact : " + personneTrouve.EmailBureau + "/" + personneTrouve.TelephonePerso + " status : " + status.ToString() + "<br />";
                            }
                            countPersonneSupprime += 1;
                        }
                    }
                }
                else
                {
                    ValidationMessage.Text += contact + " n'est pas un contact valide<br/>";
                    countContactNonValide  += 1;
                }
            }// fin du foreach ( string contact in contacts )

            ValidationMessage.Text += "<br/>Contacts supprimés avec succès : " + countPersonneSupprime.ToString() + "<br/>";
            SessionState.Limitations.SupprimerInterviewes(countPersonneSupprime);

            SessionState.Personnes   = null; // BUG080909 forcer le recalcul de SessionState.Personnes.Count
            LabelNombreContacts.Text = SessionState.Personnes.Count.ToString();

            if (countContactNonValide > 0)
            {
                ValidationMessage.Text += "<br/>Contacts non valides : " + countContactNonValide.ToString();
            }

            SqlDataSourcePersonne.SelectCommand = SelectCommand();
            GridViewContacts.DataBind();
        }// fin du if ( ContactValideFaconListe( TextBoxContactAjouter.Text ) )
        else
        {
            ValidationMessage.Text     = "Ce n'est pas un format de contact valide";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
        }
    }
    protected void Page_Load(object sender, System.EventArgs e)
    {
        Trace.Warn("Page_Load:Begin");

        ValidationMessage.Text = "";
        LabelValidationMassageGridView.Text = "";

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

        if (IsPostBack == false)
        {
            CheckBoxListChoixParsing.Items.Add("CSV");
            CheckBoxListChoixParsing.Items.Add("Outlook");
        }

        if (IsPostBack == false)
        {
            /* Importer des contacts */
            if (Page.Request["cmd"] == "parse")
            {
                string erreurMessage       = "";
                int    countPersonne       = -1;
                int    countEmailNonValide = 0;
                if (ValiderContactsImportes == true)
                {
                    erreurMessage += "Vous devez d'abord valider les Contacts importés.";
                }
                else
                {
                    if (SessionState.Questionnaire == null)
                    {
                        erreurMessage += "Choisir un Questionnaire.";
                    }
                    else
                    {
                        string             filename  = Page.Request["file"].ToString();
                        bool               parseCSV  = CheckBoxListChoixParsing.TrueSelectedValue == "CSV" ? true : false;
                        PersonneCollection personnes = new PersonneCollection();
                        if (parseCSV == true)
                        {
                            erreurMessage = CarnetAdresse.ImportFile(filename, ref personnes);
                        }
                        else
                        {
                            erreurMessage = CarnetOutlook.ImportFile(filename, ref personnes);
                        }

                        // Traiter l'erreur d'importation
                        if (erreurMessage == "")
                        {
                            countPersonne = 0; // L'import s'est bien passe
                        }
                        else
                        {
                            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                        }

                        // BRY00020100209
                        if (SessionState.Limitations.LimitesInterviewesAtteinte(personnes.Count))
                        {
                            Tools.PageValidation("La limite du nombre d'Interviewés : " + SessionState.Limitations.NombreInterviewes + " est atteinte.<br/>Contactez l'administrateur.");
                        }

                        foreach (Personne p in personnes)
                        {
                            // Corriger les petites merdouilles d'Outlook (pour outlook c'est adr1 adr2 adr3 ...
                            // et oui la rubrique "Classer sous" peut contenir une ',' qui met a mal l'algo !
                            if ((p.EmailBureau == "" || !p.EmailBureau.Contains("@")) && p.EmailPerso != "")
                            {
                                p.EmailBureau = p.EmailPerso;
                            }
                            p.EmailBureau     = p.EmailBureau.Trim();
                            p.TelephonePerso  = p.TelephonePerso.Trim();
                            p.TelephoneBureau = p.TelephoneBureau.Trim();
                            if (p.TelephonePerso == string.Empty && p.TelephoneBureau != string.Empty)
                            {
                                p.TelephonePerso = p.TelephoneBureau;
                            }
                            p.CodeAcces       = SessionState.Questionnaire.CodeAcces;
                            p.QuestionnaireID = SessionState.Questionnaire.QuestionnaireID;
                            p.PersonneGUID    = Guid.NewGuid();

                            int status = Personne.Create(p, false, ref erreurMessage);
                            if (status == 1)
                            {
                                countPersonne += 1;
                            }
                            else
                            {
                                countEmailNonValide += 1;
                            }
                        }

                        // A la fin de la sequence d'importation l'url contient les chaines cmd et file
                        // je ne trouve que ce moyen pour obliger l'url a se cleaner sinon
                        // on recommence le parsing indefiniment
                        ValiderContactsImportes = true;
                    }
                }
                PanelValiderContactImport.Visible = ValiderContactsImportes;

                // Interpreter le message d'erreur,
                // s'il n'est pas vide il contient les contacts que l'on n'a pas pu importer
                if (erreurMessage != "")
                {
                    ValidationMessage.Visible = true;
                    ValidationMessage.Text    = erreurMessage;
                }
                else
                {
                    ValidationMessage.Visible = true;
                }

                if (countPersonne != -1)
                {
                    ValidationMessage.Text += "<br/>Contacts importés avec succès : " + countPersonne.ToString();
                    // Si, malgres tout on a reussi a importer des contacts on l'ecrit en bleu
                    ValidationMessage.CssClass = "LabelValidationMessageStyle";
                    SessionState.Limitations.AjouterInterviewes(countPersonne);
                }

                if (countEmailNonValide > 0)
                {
                    ValidationMessage.Text += "<br/>Contacts non valides : " + countEmailNonValide.ToString();
                }
            }/* Importer des contacts */

            if (SessionState.Questionnaire == null)
            {
                LabelCodeAccess.Text    = "Invalide";
                LabelQuestionnaire.Text = "";
                // Pas de Questionnaire, pas de bouton nouveau contact
                RolloverLinkEdit.Visible = false;
            }
            else
            {
                LabelCodeAccess.Text    = SessionState.Questionnaire.CodeAcces.ToString();
                LabelQuestionnaire.Text = SessionState.Questionnaire.Description;
                BloquerQuestionnaire(SessionState.Questionnaire.Bloque);
            }

            /* L'alphabet */
            DropDownListLettre.Items.Add("---");
            string   _alpha = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
            string[] alpha  = _alpha.Split(',');
            foreach (string s in alpha)
            {
                DropDownListLettre.Items.Add(s);
            }

            GridViewContacts.PageSize           = SessionState.ContactsParPage;
            GridViewContacts.PageIndex          = CurrentPageIndex;
            TextBoxContactsParPage.Text         = SessionState.ContactsParPage.ToString();
            SqlDataSourcePersonne.SelectCommand = SelectCommand();
            GridViewContacts.DataBind();

            SessionState.Personnes = null; // BUG080909 forcer le recalcul de SessionState.Personnes.Count
        }
        // BUG1107090001
        LabelNombreContacts.Text = SessionState.Personnes == null ? "0" : SessionState.Personnes.Count.ToString();

        Trace.Warn("Page_Load:End");
    }
Example #19
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;
            }
        }
    }
Example #20
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");
            }
        }
    }
    protected void ButtonRepondre_Click(object sender, EventArgs e)
    {
        // Est-ce un Robo ?
        if (IsCaptchaValid == false || Page.IsValid == false)
        {
            Response.Redirect(Tools.PageErreurPath + "IP:" + Request.UserHostAddress.ToString() + "<br/>Coming from:" + Request.UrlReferrer.ToString() + "<br/>Is Robot");
        }

        Questionnaire questionnaire = Questionnaire.GetQuestionnaire(QuestionnaireID);

        // Anonyme et Anonyma on enregistre un anonyme
        if (questionnaire.Anonyme && questionnaire.Anonymat)
        {
            PersonneCollection personnes = PersonneCollection.GetQuestionnaire(questionnaire.QuestionnaireID);

            Personne anonyme = new Personne();
            // PREMIERE IDEE MAUVAISE anonyme.ID_Personne = 0; // distinguer un utilisateur anonymat complet d'un contact enregistre
            anonyme.PersonneGUID    = Guid.NewGuid();
            anonyme.QuestionnaireID = questionnaire.QuestionnaireID;
            // BUG20112009
            //anonyme.Nom = "Anonyme" + ( personnes.Count + 1 ).ToString();
            //anonyme.EmailBureau = "Anonyme" + ( personnes.Count + 1 ).ToString();
            //anonyme.Prenom = "Anonyme" + ( personnes.Count + 1 ).ToString();
            anonyme.Nom         = "";
            anonyme.EmailBureau = anonyme.PersonneGUID.ToString() + "@a.fr"; //BUG23072010
            anonyme.Prenom      = "";
            anonyme.CodeAcces   = questionnaire.CodeAcces;
            anonyme.EmailEnvois = 0;

            // Trouver si l'utilisateur de ce questionnaire est limite
            Limitation limitation = new Limitation(questionnaire.MembreGUID);
            if (limitation.LimitesInterviewes)
            {
                Response.Redirect(Tools.PageErreurPath + "Désolé, la limite du nombre d'Interviewés pour ce questionnaire est atteinte.", true);
            }

            // Enregistrement de l'interviewe avec anonymat complet
            string message = string.Empty;
            int    retCode = Personne.Create(anonyme, true, ref message);
            if (retCode == 1)
            {
                SessionState.Personne = anonyme;
            }
            else if (retCode == 2)
            {
                ValidationMessage.Text    += message;
                ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            }
        }

        if (SessionState.Personne == null)
        {
            ValidationMessage.Text    += "Vous n'êtes pas enregistrez";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            ValidationMessage.Visible  = true;
        }
        else
        {
            // Regarder si il y a au moins une Question pour ce Questionnaire
            SessionState.Questions = PollQuestionCollection.GetByQuestionnaire(SessionState.Personne.QuestionnaireID);
            if (SessionState.Questions.Count > 0)
            {
                Response.Redirect("~/Poll/Questionnaire.aspx?QuestionnaireID=" + SessionState.Personne.QuestionnaireID.ToString(), true);
            }
            else
            {
                Response.Redirect(Tools.PageErreurPath + "Désolé mais il n'y a pas de Questions pour ce Questionnaire.");
            }
        }
    }
    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;
    }
    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;
                }
            }
        }
    }
Example #24
0
        /// <summary>
        /// Lecture du fichier au format CVS creation d'une personne
        /// </summary>
        /// <param name="fileName">le fichier</param>
        /// <param name="personnes">collection de personnes si null on cree dans la database</param>
        /// <returns></returns>
        public static string ImportFile(string fileName, ref PersonneCollection personnes)
        {
            string       erreurMessage = "";
            FileStream   fs            = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            StreamReader sr            = new StreamReader(fs, Encoding.UTF7);
            string       s             = sr.ReadToEnd();

            fs.Close();
            sr.Close();

            string separateurDOS  = "\r\n";
            string separateurUnix = "\r";

            if (s.Contains(separateurDOS) == false)
            {
                if (s.Contains(separateurUnix) == false)
                {
                    erreurMessage = "Ce fichier n'est ni au format Unix ni au format DOS.<br>";
                    return(erreurMessage);
                }
                erreurMessage += "Conversion du fichier Unix vers DOS.<br>";
                s              = Strings.UnixToDos(s);
            }

            string[] separateur = { "\r\n" };
            string[] lignes     = s.Split(separateur, System.StringSplitOptions.None);
            string   entete     = lignes[0];

            string[] entetes = entete.Split(';');

            if (entetes.Length <= 2)
            {
                erreurMessage = "Ce fichier n'est pas au format du carnet d'adresses.<br>";
                return(erreurMessage);
            }

            // La deuxieme colonne Nom pose un probleme c'est le nom complet
            // mais on n'en veut pas d'ou ce caviardage par une colonne qui n'existe pas
            // sauf si le fichier vient d'excel dans ce cas on ne ve pas faire chier l'utilisateur !
            //if ( entetes.Length > 3 ) entetes[ 3 ] = "aaaaaaaaa"; RAS LE BOL JE SAIS PLUS

            ColonneCollection cc = new ColonneCollection(HeaderColumns);
            ColonneCollection colonnesExistantes = new ColonneCollection();

            // Enregistrer les colonnes qui existent
            for (int i = 0; i < entetes.Length; i++)
            {
                foreach (Colonne c in cc)
                {
                    if (c.Nom.CompareTo(entetes[i]) == 0)
                    {
                        // La colonne existe dans le fichier
                        c.Existe = true;
                        c.Indice = i;
                        colonnesExistantes.Add(c);
                    }
                }
            }

            if (colonnesExistantes.Count <= 0)
            {
                erreurMessage = "Format de fichier non valide.<br>";
                return(erreurMessage);
            }

            //BRY00020100209
            if (SessionState.Limitations.LimitesInterviewesAtteinte(lignes.Length))
            {
                Tools.PageValidation("La limite du nombre d'Interviewés : " + SessionState.Limitations.NombreInterviewes + " est atteinte.<br/>Contactez l'administrateur.");
            }

            // La derniere ligne peut etre vide
            for (int i = 1; i < lignes.Length && lignes[i] != ""; i++)
            {
                // Incroyable on voit Excel de daube qui met des ';' a lin de la ligne
                // mais il s'arrete au bout de 15 lignes et il en met plus !!!
                string[] essai = lignes[i].Split(';');
                if (essai.Length < colonnesExistantes.Count)
                {
                    // Il manque une colonne !
                    // Donc on ajoute une colonne vide !
                    lignes[i] = lignes[i] + ";";
                }

                string[] valeurs = lignes[i].Split(';');

                Personne p = new Personne();

                foreach (Colonne c in colonnesExistantes)
                {
                    if (c.Existe)
                    {
                        if (c.Nom == HeaderColumns[0])
                        {
                            p.Civilite = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[1])
                        {
                            p.Nom = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[2])
                        {
                            p.Prenom = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[3])
                        {
                            p.EmailBureau = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[4])
                        {
                            p.Adresse = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[5])
                        {
                            p.Ville = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[6])
                        {
                            p.CodePostal = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[7])
                        {
                            p.TelephonePerso = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[8])
                        {
                            p.TelephoneBureau = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[9])
                        {
                            p.TelephoneMobile = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[10])
                        {
                            p.Fax = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[11])
                        {
                            p.Societe = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[12])
                        {
                            p.Fonction = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[13])
                        {
                            p.LienHTML = valeurs[c.Indice];
                        }
                        if (c.Nom == HeaderColumns[14])
                        {
                            p.Memo = valeurs[c.Indice];
                        }
                    }
                }

                if (personnes == null)
                {
                    int ret = Personne.Create(p, true, ref erreurMessage);
                }
                else
                {
                    personnes.Add(p);
                }
            }

            return(erreurMessage);
        }
    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"];
        }
    }