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