コード例 #1
0
    protected void GridViewContacts_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
    {
        if (e.NewValues["PersonneCivilite"] == null)
        {
            e.NewValues["PersonneCivilite"] = "";
        }

        if (e.NewValues["PersonneNom"] == null)
        {
            e.NewValues["PersonneNom"] = e.OldValues["PersonneNom"];
        }

        if (e.NewValues["PersonnePrenom"] == null)
        {
            e.NewValues["PersonnePrenom"] = e.OldValues["PersonnePrenom"];
        }

        if (e.NewValues["PersonneSociete"] == null)
        {
            e.NewValues["PersonneSociete"] = string.Empty;
        }

        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();
    }
コード例 #2
0
    protected void GridViewContacts_PageIndexChanged(object sender, System.EventArgs e)
    {
        CurrentPageIndex = GridViewContacts.PageIndex;

        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();
    }
コード例 #3
0
    protected void btnDisplay_Click(object sender, EventArgs e)
    {
        List <Contact> contactList = new List <Contact>();

        contactList = serviceProvider.NameList;
        GridViewContacts.DataSource = contactList;
        GridViewContacts.DataBind();
    }
コード例 #4
0
    protected void CheckBoxDateVotes_CheckedChanged(object sender, EventArgs e)
    {
        SessionState.CheckBox["CheckBoxDate"] = CheckBoxDateVotes.Checked;
        GridViewContacts.Columns[columnCreationDate].Visible = CheckBoxDateVotes.Checked;
        CheckBoxTousSelectionner.Checked = false;

        // BUG100920090002
        // si on execute pas le code ci-dessous on se retrouve avec tous les contacts de tous le monde
        // dans la grille ... ?!!
        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();
    }
コード例 #5
0
    protected void DropDownListQuestionnaire_SelectedIndexChanged(object sender, EventArgs e)
    {
        int questionnaireID = DropDownListQuestionnaire.QuestionnaireID;

        SessionState.Questionnaire = Questionnaire.GetQuestionnaire(questionnaireID);
        LabelCodeAccess.Text       = SessionState.Questionnaire.CodeAcces.ToString();
        LabelQuestionnaire.Text    = SessionState.Questionnaire.Description;

        BloquerQuestionnaire(SessionState.Questionnaire.Bloque);

        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();
        SessionState.Personnes   = null;
        LabelNombreContacts.Text = SessionState.Personnes.Count.ToString();
    }
コード例 #6
0
    protected void GridViewContacts_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
            LabelValidationMassageGridView.CssClass = "LabelValidationMessageStyle";
            LabelValidationMassageGridView.Visible  = true;

            // Supprime les votes associes au contact mais pas le contact lui meme qui est supprime
            // par le SqlDataSource
            int                index      = Convert.ToInt32(e.CommandArgument);
            GridView           gv         = ( GridView )e.CommandSource;
            string             personneID = gv.DataKeys[index].Value.ToString();
            int                pID        = int.Parse(personneID);
            Personne           personne   = Personne.Get(pID);
            PollVoteCollection pvc        = PollVoteCollection.GetPollVotes(SessionState.Questionnaire.QuestionnaireID, personne.PersonneGUID);
            int                status     = 0;
            foreach (PollVote pv in pvc)
            {
                status += PollVote.Delete(pv.VoteId);
            }
            string str          = " votes supprimés : " + pvc.Count;
            string statusString = status.ToString() == "0" ? " status : Ok" : " status  : Ko";
            LabelValidationMassageGridView.Text += "Contact supprimé : " + personne.Civilite + "/" + personne.Nom + "/" + personne.Prenom + "/" + personne.EmailBureau + str + statusString + "<br />";
            SessionState.Limitations.SupprimerInterviewes(1);
        }

        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();

        // BUG080909 recalculer LabelNombreContacts apres le SqlDataSourcePersonne.SelectCommand
        // sinon le resultat est faux
        // NON ca ne marche pas meme GridViewContacts.Rows n'est pas a jour ici
        // et on ne va pas refaire un PostBack pour mettre a jour l'interface !!!
        //SessionState.Personnes = null;
        //LabelNombreContacts.Text = SessionState.Personnes.Count.ToString();
    }
コード例 #7
0
    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";
        }
    }
コード例 #8
0
    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");
    }
コード例 #9
0
    protected void ButtonAjouterContacts_Click(object sender, EventArgs e)
    {
        ValidationMessage.Text     = "";
        ValidationMessage.CssClass = "LabelValidationMessageStyle";
        ValidationMessage.Visible  = true;

        if (TextBoxContactAjouter.Text.Trim() != "")
        {
            int countPersonne       = 0;
            int countEmailNonValide = 0;

            if (ValiderSeparateur(TextBoxContactAjouter.Text) == false)
            {
                ValidationMessage.Text     = "Erreur de séparateur : votre liste de contacts contient à la fois le séparateur \";\" et des retours chariots.";
                ValidationMessage.Text    += "<br/>Vous devez nettoyer votre liste.";
                ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                return;
            }

            // Tester le format
            if (ContactValideFaconOutlook(TextBoxContactAjouter.Text))
            {
                string[] separateur = { ";" };
                string[] contacts   = TextBoxContactAjouter.Text.Split(separateur, StringSplitOptions.RemoveEmptyEntries);

                // Ici, on peut encore se faire avoir si la liste contient les deux formats
                string[] separateur2 = { "\r\n" };
                string[] contacts2   = TextBoxContactAjouter.Text.Split(separateur2, StringSplitOptions.RemoveEmptyEntries);
                if (contacts2.Length > contacts.Length)
                {
                    ValidationMessage.Text     = "Erreur de format : vous utilisez le format \"nom complet ([email protected])\" avec le séprateur retour chariot";
                    ValidationMessage.Text    += "<br/>Vous devez nettoyer votre liste.";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    return;
                }

                // Encore une verification, trop d'entree ici fait ramer le serveur d'une façon peu recommandable
                if (contacts.Length > int.Parse(Global.SettingsXml.LimitationImportsInterviewes))
                {
                    ValidationMessage.Text     = "Erreur : Taille maximum de la liste d'imports atteinte : " + Global.SettingsXml.LimitationImportsInterviewes;
                    ValidationMessage.Text    += "<br/>Vous devez réduire votre liste.";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    return;
                }

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

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

                foreach (string contact in contacts)
                {
                    if (ContactValideFaconOutlook(contact))
                    {
                        string[] nomComplet = contact.Split('(');

                        int    idx1  = contact.IndexOf('(') + 1;
                        int    idx2  = contact.IndexOf(')');
                        string email = contact.Substring(idx1, idx2 - idx1);

                        if (Strings.IsValideEmail(email.Trim()))
                        {
                            Personne personne = new Personne();
                            personne.Nom         = nomComplet[0].Trim();
                            personne.EmailBureau = email.Trim();

                            personne.CodeAcces       = SessionState.Questionnaire.CodeAcces;
                            personne.QuestionnaireID = SessionState.Questionnaire.QuestionnaireID;
                            personne.PersonneGUID    = Guid.NewGuid();

                            string message = string.Empty;
                            int    status  = Personne.Create(personne, false, ref message);
                            if (status == 1)
                            {
                                countPersonne += 1;
                            }
                            else
                            {
                                ValidationMessage.Text    += message;
                                ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                            }
                        }
                        else
                        {
                            ValidationMessage.Text += email.Trim() + " n'est pas un email valide<br/>";
                            countEmailNonValide    += 1;
                        }
                    }
                    else
                    {
                        ValidationMessage.Text += contact + " n'est pas un format valide<br/>";
                    }
                }
            }
            else if (ContactValideFaconListe(TextBoxContactAjouter.Text))
            {
                string contactAjouter = TextBoxContactAjouter.Text;
                string separateurDOS  = "\r\n";
                string separateurUnix = "\r";
                if (contactAjouter.Contains(separateurDOS) == false)
                {
                    if (contactAjouter.Contains(separateurUnix) == true)
                    {
                        ValidationMessage.Text += "Contacts au format Unix à importer<br/>";
                        contactAjouter          = Strings.UnixToDos(contactAjouter);
                    }
                }

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

                // Encore une verification, trop d'entree ici fait ramer le serveur d'une façon peu recommandable
                if (contacts.Length > int.Parse(Global.SettingsXml.LimitationImportsInterviewes))
                {
                    ValidationMessage.Text     = "Erreur : Taille maximum de la liste d'imports atteinte : " + Global.SettingsXml.LimitationImportsInterviewes;
                    ValidationMessage.Text    += "<br/>Vous devez réduire votre liste.";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    return;
                }

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

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

                foreach (string contact in contacts)
                {
                    if (Strings.IsValideEmail(contact))
                    {
                        Personne personne = new Personne();
                        personne.Nom         = "";
                        personne.EmailBureau = contact;

                        personne.CodeAcces       = SessionState.Questionnaire.CodeAcces;
                        personne.QuestionnaireID = SessionState.Questionnaire.QuestionnaireID;
                        personne.PersonneGUID    = Guid.NewGuid();

                        string message = string.Empty;
                        int    status  = Personne.Create(personne, false, ref message);
                        if (status == 1)
                        {
                            countPersonne += 1;
                        }
                        else
                        {
                            ValidationMessage.Text    += message;
                            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                        }
                    }
                    else
                    {
                        ValidationMessage.Text += contact + " n'est pas un email valide<br/>";
                        countEmailNonValide    += 1;
                    }
                }
            }
            else if (TextBoxContactAjouter.Text.Length > 9 && TextBoxContactAjouter.Text.Substring(0, 9) == "Téléphone")
            {
                string contactAjouter = TextBoxContactAjouter.Text;
                string separateurDOS  = "\r\n";
                string separateurUnix = "\r";
                if (contactAjouter.Contains(separateurDOS) == false)
                {
                    if (contactAjouter.Contains(separateurUnix) == true)
                    {
                        ValidationMessage.Text += "Contacts au format Unix à importer<br/>";
                        contactAjouter          = Strings.UnixToDos(contactAjouter);
                    }
                }

                // Retirer la chaine "Téléphone"
                contactAjouter = contactAjouter.Substring(9 + separateurDOS.Length);

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

                // Encore une verification, trop d'entree ici fait ramer le serveur d'une façon peu recommandable
                if (contacts.Length > int.Parse(Global.SettingsXml.LimitationImportsInterviewes))
                {
                    ValidationMessage.Text     = "Erreur : Taille maximum de la liste d'imports atteinte : " + Global.SettingsXml.LimitationImportsInterviewes;
                    ValidationMessage.Text    += "<br/>Vous devez réduire votre liste.";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    return;
                }

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

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

                foreach (string contact in contacts)
                {
                    if (Strings.IsValideTelephone(contact))
                    {
                        Personne personne = new Personne();
                        personne.Nom            = "";
                        personne.TelephonePerso = contact;

                        personne.CodeAcces       = SessionState.Questionnaire.CodeAcces;
                        personne.QuestionnaireID = SessionState.Questionnaire.QuestionnaireID;
                        personne.PersonneGUID    = Guid.NewGuid();

                        string message = string.Empty;
                        int    status  = Personne.Create(personne, false, ref message);
                        if (status == 1)
                        {
                            countPersonne += 1;
                        }
                        else
                        {
                            ValidationMessage.Text    += message;
                            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                        }
                    }
                    else
                    {
                        ValidationMessage.Text += contact + " n'est pas un numéro de téléphone valide<br/>";
                        countEmailNonValide    += 1;
                    }
                }
            }
            else if (TextBoxContactAjouter.Text.Length > 14 && TextBoxContactAjouter.Text.Substring(0, 14) == "Nom[Téléphone]")
            {
                string contactAjouter = TextBoxContactAjouter.Text;
                string separateurDOS  = "\r\n";
                string separateurUnix = "\r";
                if (contactAjouter.Contains(separateurDOS) == false)
                {
                    if (contactAjouter.Contains(separateurUnix) == true)
                    {
                        ValidationMessage.Text += "Contacts au format Unix à importer<br/>";
                        contactAjouter          = Strings.UnixToDos(contactAjouter);
                    }
                }

                // Retirer la chaine "Téléphone"
                contactAjouter = contactAjouter.Substring(14 + separateurDOS.Length);

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

                // Encore une verification, trop d'entree ici fait ramer le serveur d'une façon peu recommandable
                if (contacts.Length > int.Parse(Global.SettingsXml.LimitationImportsInterviewes))
                {
                    ValidationMessage.Text     = "Erreur : Taille maximum de la liste d'imports atteinte : " + Global.SettingsXml.LimitationImportsInterviewes;
                    ValidationMessage.Text    += "<br/>Vous devez réduire votre liste.";
                    ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                    return;
                }

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

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

                foreach (string contact in contacts)
                {
                    if (contact.Contains("[") == true && contact.Contains("]") == true)
                    {
                        string[] nomComplet = contact.Split('[');

                        int    idx1      = contact.IndexOf('[') + 1;
                        int    idx2      = contact.IndexOf(']');
                        string telephone = contact.Substring(idx1, idx2 - idx1);

                        if (Strings.IsValideTelephone(telephone.Trim()))
                        {
                            Personne personne = new Personne();
                            personne.Nom            = nomComplet[0].Trim();
                            personne.TelephonePerso = telephone.Trim();

                            personne.CodeAcces       = SessionState.Questionnaire.CodeAcces;
                            personne.QuestionnaireID = SessionState.Questionnaire.QuestionnaireID;
                            personne.PersonneGUID    = Guid.NewGuid();

                            string message = string.Empty;
                            int    status  = Personne.Create(personne, false, ref message);
                            if (status == 1)
                            {
                                countPersonne += 1;
                            }
                            else
                            {
                                ValidationMessage.Text    += message;
                                ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
                            }
                        }
                        else
                        {
                            ValidationMessage.Text += telephone.Trim() + " n'est pas un numéro de téléphone valide<br/>";
                            countEmailNonValide    += 1;
                        }
                    }
                    else
                    {
                        ValidationMessage.Text += contact + " n'est pas un format valide<br/>";
                    }
                }
            }
            else
            {
                ValidationMessage.Text     = "Ce n'est pas un format de contact valide";
                ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
            }

            ValidationMessage.Text += "<br/>Contacts importés avec succès : " + countPersonne.ToString();
            SessionState.Limitations.AjouterInterviewes(countPersonne);

            if (countEmailNonValide > 0)
            {
                ValidationMessage.Text += "<br/>Contacts non valides : " + countEmailNonValide.ToString();
            }
        }
        else
        {
            ValidationMessage.Text     = "La liste des contacts est vide";
            ValidationMessage.CssClass = "LabelValidationMessageErrorStyle";
        }

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

        SqlDataSourcePersonne.SelectCommand = SelectCommand();
        GridViewContacts.DataBind();
    }
コード例 #10
0
 protected void DropDownListLettre_SelectedIndexChanged(object sender, EventArgs e)
 {
     SqlDataSourcePersonne.SelectCommand = SelectCommand();
     GridViewContacts.DataBind();
 }