// **************************************** // AFFICHAGE DATAGRID // **************************************** #region affichageDataGrid /// <summary> /// Affiche les candidats dans la datagrid quand une requête doit être faite sur la base de données /// </summary> private void afficherCandidatDataGrid() { viderAffichageStackPanel(); //Si le nombre de colonnes est vide if (grilleDeDonnees.Columns.Count() == 0 || grilleDeDonnees.Columns[0].Header.ToString() != "idCandidat") { //Si le nombre de colonnes est supérieur à 0, c'est qu'une autre table était affichée avant if (grilleDeDonnees.Columns.Count > 0) { grilleDeDonnees.Items.Clear(); grilleDeDonnees.Columns.Clear(); } using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; var query = from candidat in context.Candidat orderby candidat.idCandidat, candidat.nom, candidat.prenom select candidat; DataGridTextColumn col1 = new DataGridTextColumn(); DataGridTextColumn col2 = new DataGridTextColumn(); DataGridTextColumn col3 = new DataGridTextColumn(); DataGridTextColumn col4 = new DataGridTextColumn(); DataGridTextColumn col5 = new DataGridTextColumn(); grilleDeDonnees.Columns.Add(col1); grilleDeDonnees.Columns.Add(col2); grilleDeDonnees.Columns.Add(col3); grilleDeDonnees.Columns.Add(col4); grilleDeDonnees.Columns.Add(col5); col1.Binding = new Binding("idCandidat"); col2.Binding = new Binding("nom"); col3.Binding = new Binding("prenom"); col4.Binding = new Binding("sexe"); col5.Binding = new Binding("idListe"); col1.Header = "idCandidat"; col2.Header = "nom"; col3.Header = "prenom"; col4.Header = "sexe"; col5.Header = "idListe"; foreach (var candid in query) { grilleDeDonnees.Items.Add(new Candidat() { idCandidat = candid.idCandidat, nom = candid.nom, prenom = candid.prenom, sexe = candid.sexe, idListe = candid.idListe }); } grilleDeDonnees.Visibility = Visibility.Visible; } } }
/// <summary> /// Insertion dans la base de données de l'entité AnneeElection /// </summary> /// <param name="year">Entité : AnneeElection</param> public void insertionAnnee() { using (var context = new electionEDM()) { try { AnneeElection query = (from annee in context.AnneeElection where annee.annee == this.annee select annee).Single(); } catch { context.AnneeElection.Add(this); try { context.SaveChanges(); } //Si l'insertion dans la base de données échoue catch { MessageBox.Show("L'insertion de l'année dans la base de données a échoué"); } } } }
/// <summary> /// Tri les partis politiques selon les choix de l'utilisateur /// </summary> /// <param name="sender">Bouton : trierButton</param> /// <param name="e">Click sur le bouton : trierButton</param> private void trierButton_Click(object sender, RoutedEventArgs e) { if (TriComboBox.SelectedItem == null || TriComboBox.SelectedItem.Equals(aucunTriComboBox)) { MessageBox.Show("Vous n'avez choisi aucun type de tri."); } else { List <Parti> partiTrie = null; IQueryable <Parti> query = null; using (var context = new electionEDM()) { query = from partis in context.Parti orderby partis.code_nuance select partis; partiTrie = query.ToList(); } ((MainWindow)this.Owner).afficherPartiDataGrid(partiTrie); this.Close(); } }
/// <summary> /// Insertion des clés étrangères relatives au calcul des sièges alloués selon les résultats des élections /// </summary> /// <param name="csiege">Tableau de table association : calcul_sieges</param> /// <param name="comm">Commune dans laquelle on indique les sièges alloués à certaines listes</param> /// <param name="year">Année de l'election</param> /// <param name="liste">Tableau de listes electorales</param> /// <returns></returns> public calcul_sieges[] insertionCleEtrangereCalculSieges(calcul_sieges[] csiege, Commune comm, AnneeElection year, Liste[] liste) { using (var context = new electionEDM()) { context.Liste.Load(); Liste listeTemp; for (int i = 0; i < csiege.Length; i++) { listeTemp = liste[i]; //On effectue une requête pour savoir si la liste à laquelle est liée calcul_sieges existe bien dans la BDD try { var query = (from list in context.Liste where list.nomListe == listeTemp.nomListe select list.idListe).Single(); csiege[i].Commune = null; csiege[i].AnneeElection = null; csiege[i].Liste = null; csiege[i].insee = comm.insee; csiege[i].annee = year.annee; csiege[i].idListe = query; } //Si la liste n'existe pas dans la BDD catch { } } //fin de la boucle for } //fin du using return(csiege); }
/// <summary> /// Insertion des données dans la BDD des stats relatives aux élections pour une commune /// </summary> /// <param name="stat"></param> public void insertionDonneesStatElection(AnneeElection year, Commune comm) { using (var context = new electionEDM()) { //On regarde si stats_election est déjà dans la BDD try { var query = (from stats in context.stats_election where (stats.annee == year.annee && stats.insee == comm.insee) select stats).Single(); } //Si stats_election n'est pas dans la BDD, on l'insère catch { context.stats_election.Add(this); //On l'insère dans la base de données try { context.SaveChanges(); } //Si l'insertion échoue catch { } } } }
/// <summary> /// insertion de la table stockant le nombre de sièges affectés à une commune /// </summary> /// <param name="csiege"></param> public void insertionDonneesCalculSieges(calcul_sieges[] csiege, Commune com, AnneeElection year, Liste[] list) { using (var context = new electionEDM()) { for (int i = 0; i < csiege.Length; i++) { //On recherche dans la BDD si l'objet calcul_sieges existe déjà try { var query = (from csieges in context.calcul_sieges where csieges.insee == com.insee && csieges.annee == year.annee && csieges.idListe == list[i].idListe select csieges).Single(); } //Si il n'existe pas, on l'insère dans la BDD catch { context.calcul_sieges.Add(csiege[i]); try { context.SaveChanges(); } //Si l'insertion dans la base de données échoue catch { } } } } }
// ************************ // REQUETES // ************************ #region requêtes /// <summary> /// Affiche la liste des femmes/hommes qui étaient au second tour des élections municipales /// </summary> /// <param name="sender">femmesCandidatsMenuItem ou hommesCandidatsMenuItem</param> /// <param name="e">Click sur le MenuItem : femmesCandidatsMenuItem ou hommesCandidatsMenuItem</param> private void afficherLesHommesOuLesFemmes(object sender, RoutedEventArgs e) { List <Candidat> sexeCandidat = null; string sexe; if (sender.Equals(hommesCandidatsMenuItem)) { sexe = "M"; } else { sexe = "F"; } using (var context = new electionEDM()) { //On ne selectionne que les candidats du genre choisi dans le menuItem et on les trie par nom, puis par prénom var querySexe = from candidat in context.Candidat where candidat.sexe == sexe orderby candidat.nom, candidat.prenom select candidat; sexeCandidat = querySexe.ToList(); } afficherCandidatDataGrid(sexeCandidat); }
} //Fin de trierButton_Click /// <summary> /// Tri la liste des départements selon le critère choisi par l'utilisateur /// </summary> /// <param name="departementTrie">Liste des départements qui va être triée</param> /// <returns></returns> private List <Departement> SelectionTri(List <Departement> departementTrie) { IQueryable <Departement> query = null; using (var context = new electionEDM()) { //Si on trie les départements selon leur numéro if (TriComboBox.SelectedItem.Equals(codeTriComboBox)) { query = from dept in context.Departement orderby dept.code_du_departement select dept; } //Si le tri se porte sur le libellé du département else { query = from dept in context.Departement orderby dept.libelle_du_departement select dept; } departementTrie = query.ToList(); } return(departementTrie); }
// ************************************************************ // METHODES // ************************************************************ /// <summary> /// Insère la clé étrangère dans la classe Commune /// </summary> /// <param name="com">La commune</param> /// <param name="dept">Le département auquel appartient la commune</param> /// <returns></returns> public void insertionCleEtrangereCommune(Departement dept, short numDept, string libelleDepartement) { if (this.code_de_la_commune == "") { this.code_de_la_commune = "vide"; } Departement queryDepartement; //Si le département existait déjà, alors il a été mis à 0 if (dept.code_du_departement == 0) { using (var context = new electionEDM()) { //On va donc aller chercher dans la BDD le numdept gardé en mémoire depuis le fichier csv. Si il existe dans la bdd //on attribut la valeur du code departement en clé étrangère de la commune try { queryDepartement = (from dpt in context.Departement where dpt.code_du_departement == numDept select dpt).Single(); this.Departement = null; //On annule l'objet Département afin qu'entity n'essaie pas de l'insérer une nouvelle fois //dans la BDD this.code_du_departement = queryDepartement.code_du_departement; } catch { this.Departement = null; this.code_du_departement = numDept; } } } //Si le code_du_département n'est pas égal à 0, c'est qu'il n'était pas entré dans la bdd else { using (var context = new electionEDM()) { try { //par sécurité, on s'assure qu'il n'existait pas déjà quand même queryDepartement = (from dpt in context.Departement where dpt.code_du_departement == numDept select dpt).Single(); this.Departement = null; this.code_du_departement = queryDepartement.code_du_departement; } //Si il n'existait pas, on assigne en clé étrangère de la commune, le numéro de département gardé en mémoire //lors de la récupération des données dans le fichier csv catch { this.Departement = null; this.code_du_departement = numDept; } } } }
/// <summary> /// Appelle la fonction prénom féminin qui a été le plus fréquemment élu lors des élections municipales /// </summary> /// <param name="sender">MenuItem : prenomFPlusFrequentMenuItem</param> /// <param name="e">Click sur le MenuItem : prenomFPlusFrequentMenuItem</param> private void prenomPlusFrequentMenuItem_Click(object sender, RoutedEventArgs e) { string sexe = ""; if (sender.Equals(prenomFPlusFrequentMenuItem)) { sexe = "F"; } else if (sender.Equals(prenomMPlusFrequentMenuItem)) { sexe = "M"; } using (var context = new electionEDM()) { //Récupère les candidats féminins var queryPrenom = from listedesprenoms in context.Candidat where listedesprenoms.sexe == sexe select listedesprenoms; //Groupe les candidats féminins par prénom var prenomTrouve = from prenomtrouve in queryPrenom orderby prenomtrouve.prenom group prenomtrouve by prenomtrouve.prenom into nombredeprenomtrouve select new { prenom = nombredeprenomtrouve.Key, count = nombredeprenomtrouve.Count() }; int i = 0; //index dans le foreach int BestPrenom = 0; //Nombre d'occurences du prénom le plus utilisé string MeilleurPrenom = ""; foreach (var PrenomPlusSouventPresent in prenomTrouve) { if (i == 0 || PrenomPlusSouventPresent.count > BestPrenom) { BestPrenom = PrenomPlusSouventPresent.count; MeilleurPrenom = PrenomPlusSouventPresent.prenom; } i++; } //On affiche les résultats dans une textbox TextBox tb = new TextBox(); tb = proprieteTextBoxAffichageSQL(tb); affichageStackPanel.Children.Clear(); affichageStackPanel.Children.Add(tb); if (sender.Equals(prenomFPlusFrequentMenuItem)) { tb.Text = "Le prénom féminin le plus fréquent parmi les élues est " + MeilleurPrenom + " avec " + BestPrenom + " occurences."; } else { tb.Text = "Le prénom masculin le plus fréquent parmi les élus est " + MeilleurPrenom + " avec " + BestPrenom + " occurences."; } } //Fin du using } //Fin de prenomPlusFrequentMenuItem_Click
/// <summary> /// Affiche les communes dans la datagrid quand une requête doit être faite sur la base de données /// </summary> private void afficherCommuneDataGrid() { viderAffichageStackPanel(); //Si le nombre de colonnes est vide if (grilleDeDonnees.Columns.Count() == 0 || grilleDeDonnees.Columns[0].Header.ToString() != "insee") { if (grilleDeDonnees.Columns.Count > 0) { grilleDeDonnees.Items.Clear(); grilleDeDonnees.Columns.Clear(); } using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; var query = from commune in context.Commune orderby commune.code_de_la_commune, commune.insee select commune; DataGridTextColumn col1 = new DataGridTextColumn(); DataGridTextColumn col2 = new DataGridTextColumn(); DataGridTextColumn col3 = new DataGridTextColumn(); DataGridTextColumn col4 = new DataGridTextColumn(); grilleDeDonnees.Columns.Add(col1); grilleDeDonnees.Columns.Add(col2); grilleDeDonnees.Columns.Add(col3); grilleDeDonnees.Columns.Add(col4); col1.Binding = new Binding("code_de_la_commune"); col2.Binding = new Binding("insee"); col3.Binding = new Binding("libelle_de_la_commune"); col4.Binding = new Binding("code_du_departement"); col1.Header = "code_de_la_commune"; col2.Header = "insee"; col3.Header = "libelle_de_la_commune"; col4.Header = "code_du_departement"; foreach (var commune in query) { grilleDeDonnees.Items.Add(new Commune() { code_de_la_commune = commune.code_de_la_commune, insee = commune.insee, libelle_de_la_commune = commune.libelle_de_la_commune, code_du_departement = commune.code_du_departement }); } grilleDeDonnees.Visibility = Visibility.Visible; } //Fin du using } //Fin du if(grilleDeDonnees.Colums.Count() == 0) }
/// <summary> /// Affiche les départements dans la datagrid quand une requête doit être faite sur la base de données /// </summary> private void afficherDepartementDataGrid() { viderAffichageStackPanel(); //Si le nombre de colonnes est vide if (grilleDeDonnees.Columns.Count() == 0 || grilleDeDonnees.Columns[0].Header.ToString() != "code_du_departement") { if (grilleDeDonnees.Columns.Count > 0) { grilleDeDonnees.Items.Clear(); grilleDeDonnees.Columns.Clear(); } using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; var query = from dept in context.Departement orderby dept.code_du_departement select dept; DataGridTextColumn col1 = new DataGridTextColumn(); DataGridTextColumn col2 = new DataGridTextColumn(); grilleDeDonnees.Columns.Add(col1); grilleDeDonnees.Columns.Add(col2); col1.Binding = new Binding("code_du_departement"); col2.Binding = new Binding("libelle_du_departement"); col1.Header = "code_du_departement"; col2.Header = "libelle_du_departement"; foreach (var dept in query) { grilleDeDonnees.Items.Add(new Departement() { code_du_departement = dept.code_du_departement, libelle_du_departement = dept.libelle_du_departement }); } grilleDeDonnees.Visibility = Visibility.Visible; } //Fin du using } //Fin du if(grilleDeDonnees.Colums.Count() == 0) }
} //Fin de trierButton_Click /// <summary> /// Permet de trier les communes selon le type de tri choisi par l'utilisateur /// </summary> /// <param name="communeTrie">Liste de communes</param> /// <returns></returns> private List <Commune> SelectionTri(List <Commune> communeTrie) { IQueryable <Commune> query = null; using (var context = new electionEDM()) { if (TriComboBox.SelectedItem.Equals(inseeTriComboBox)) { query = from commune in context.Commune orderby commune.insee select commune; } else if (TriComboBox.SelectedItem.Equals(codeTriComboBox)) { query = from commune in context.Commune orderby commune.code_de_la_commune select commune; } else if (TriComboBox.SelectedItem.Equals(libelleTriComboBox)) { query = from commune in context.Commune orderby commune.libelle_de_la_commune select commune; } else if (TriComboBox.SelectedItem.Equals(codeInseeTriComboBox)) { query = from commune in context.Commune orderby commune.code_de_la_commune, commune.insee select commune; } //Si on trie d'abord par le code de la commune puis le libellé else { query = from commune in context.Commune orderby commune.code_de_la_commune, commune.libelle_de_la_commune select commune; } communeTrie = query.ToList(); } return(communeTrie); }
/// <summary> /// Permet d'afficher la liste des partis politiques quand une requête doit être faite sur la base de données /// </summary> private void afficherPartiDataGrid() { viderAffichageStackPanel(); //Si le nombre de colonnes est vide if (grilleDeDonnees.Columns.Count() == 0 || grilleDeDonnees.Columns[0].Header.ToString() != "code_nuance") { //Si le nombre de colonnes est supérieur à 0, c'est que l'on affichait une table avant //On efface donc toutes les données if (grilleDeDonnees.Columns.Count > 0) { grilleDeDonnees.Items.Clear(); grilleDeDonnees.Columns.Clear(); } using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; var query = from parti in context.Parti orderby parti.code_nuance select parti; DataGridTextColumn col1 = new DataGridTextColumn(); grilleDeDonnees.Columns.Add(col1); col1.Binding = new Binding("code_nuance"); col1.Header = "code_nuance"; foreach (var parti in query) { grilleDeDonnees.Items.Add(new Parti() { code_nuance = parti.code_nuance }); } grilleDeDonnees.Visibility = Visibility.Visible; } //Fin du using } //Fin du if(grilleDeDonnees.Colums.Count() == 0) }
/// <summary> /// Insertion des données dans la BDD des partis politiques /// </summary> /// <param name="parti">Parti politique</param> public void insertionDonneesParti(Parti[] parti) { using (var context = new electionEDM()) { string query; //On va parcourir le tableau de partis for (int i = 0; i < parti.Length; i++) { Parti partiTemp = parti[i]; if (partiTemp.code_nuance != null) { //On regarde si le parti n'existe pas déjà dans la base de données try { query = (from part in context.Parti where part.code_nuance == partiTemp.code_nuance select part.code_nuance).Single(); } //Si le parti n'existe pas catch (InvalidOperationException e) { context.Parti.Add(parti[i]); //On insère le Parti dans la base de données try { context.SaveChanges(); } //Si l'insertion du parti dans la base de données échoue catch (System.Data.Entity.Validation.DbEntityValidationException a) { MessageBox.Show("L'insertion du parti " + i + " : a échoué lors du savechanges"); } } } } } }
/// <summary> /// insertion des listes éléctorales dans la base de données /// </summary> /// <param name="list">Tableau de listes électorales</param> public void insertionDonneesListe(Liste[] list) { using (var context = new electionEDM()) { //On parcourt le tableau de listes electorales for (int i = 0; i < list.Length; i++) { Liste listTemp = list[i]; string query; if (list[i].nomListe != null) { //On regarde si la liste n'existe pas déjà dans la table try { query = (from liste in context.Liste where liste.nomListe == listTemp.nomListe select liste.nomListe).Single(); } //Si la liste n'existe pas dans la table catch (InvalidOperationException e) { context.Liste.Add(list[i]); //On insère la liste dans la base de données try { context.SaveChanges(); } //Si l'insertion de la liste a échoué catch (System.Data.Entity.Validation.DbEntityValidationException a) { MessageBox.Show("L'insertion de la liste " + i + " : a échoué"); } } } } } }
/// <summary> /// Permet de tester si le département existe déjà dans la base de données /// </summary> /// <param name="code_du_departement">Numéro du département</param> /// <returns></returns> public static bool leDepartementExisteDeja(short code_du_departement) { bool leDepartementExiste = false; using (var context = new electionEDM()) { try { var query = (from dept in context.Departement where code_du_departement == dept.code_du_departement select dept).Single(); leDepartementExiste = true; } catch { leDepartementExiste = false; } } return(leDepartementExiste); }
/// <summary> /// On va insérer les données relatives aux départements /// </summary> /// <param name="dpt">Le département</param> public void insertionDonneesDepartement() { using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; short query; //On fait une requête pour voir si le département n'existe pas déjà dans la base de données try { query = (from dept in context.Departement where dept.code_du_departement == this.code_du_departement select dept.code_du_departement).Single(); } //Si le département n'existe pas dans la base de données catch (InvalidOperationException e) { if (this.code_du_departement != 0) { context.Departement.Add(this); //On insère le département dans la base de données try { context.SaveChanges(); } //Si l'insertion du département échoue catch (System.Data.Entity.Validation.DbEntityValidationException a) { MessageBox.Show("L'insertion du département dans la base de données a échoué"); } //Fin du catch } } //Fin du catch sur le try de la requête } //Fin du using }
/// <summary> /// On va insérer les données relatives aux candidats à l'élection municipale dans la base de données /// </summary> public void insertionDonneesCandidat(Candidat[] candidat) { using (var context = new electionEDM()) { for (int i = 0; i < candidat.Length; i++) { int query; if (candidat[i].nom != null) { //On fait une requête pour voir si l'id du candidat n'existe pas déjà dans la bdd try { query = (from candid in context.Candidat where candid.nom == candidat[i].nom && candid.prenom == candidat[i].prenom select candid.idCandidat).Single(); } //Si son identifiant n'existe pas catch { context.Candidat.Add(candidat[i]); //On fait un try sur l'insertion dans la BDD try { context.SaveChanges(); } //Si l'insertion du candicat échoue catch { } } } } } }
/// <summary> /// Insertion Données de la commune /// </summary> /// <param name="com"></param> public void insertionDonneesCommune(Departement dept) { using (var context = new electionEDM()) { context.Configuration.LazyLoadingEnabled = false; string query; //On effectue une requête pour voir si la commune n'existe pas déjà dans la bdd try { query = (from comm in context.Commune where comm.insee == this.insee select this.insee).Single(); } //Si elle n'était pas présente dans la bdd, on l'insère catch (InvalidOperationException e) { context.Commune.Add(this); //On insère la commune dans la base de données try { context.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException a) { foreach (var eve in a.EntityValidationErrors) { MessageBox.Show("L'insertion de la commune dans la base de données a rencontré une erreur"); } throw; } } } }
/// <summary> /// Insertion des données concernant la table association "election" /// </summary> /// <param name="elect">Table association : election</param> public void insertionDonneesElection(election[] elect) { using (var context = new electionEDM()) { for (int i = 0; i < elect.Length; i++) { if (elect[i].voix != 0) { context.election.Add(elect[i]); //On insère les entités election dans la base de données try { context.SaveChanges(); } //Si l'insertion échoue catch { } } } } }
/// <summary> /// Tri la liste des candidats en fonction de ce qu'a choisi l'utilisateur /// </summary> /// <param name="candidat"></param> /// <returns></returns> private List <Candidat> selectionDuTri(List <Candidat> candidatTrie) { IQueryable <Candidat> query = null; using (var context = new electionEDM()) { if (TriComboBox.SelectedItem.Equals(idTriComboBox)) { query = from candidat in context.Candidat orderby candidat.idCandidat select candidat; } else if (TriComboBox.SelectedItem.Equals(nomTriComboBox)) { query = from candidat in context.Candidat orderby candidat.nom select candidat; } else if (TriComboBox.SelectedItem.Equals(prenomTriComboBox)) { query = from candidat in context.Candidat orderby candidat.prenom select candidat; } else if (TriComboBox.SelectedItem.Equals(idNomTriComboBox)) { query = from candidat in context.Candidat orderby candidat.idCandidat, candidat.nom select candidat; } else if (TriComboBox.SelectedItem.Equals(idPrenomTriComboBox)) { query = from candidat in context.Candidat orderby candidat.idCandidat, candidat.prenom select candidat; } else if (TriComboBox.SelectedItem.Equals(nomPrenomTriComboBox)) { query = from candidat in context.Candidat orderby candidat.nom, candidat.prenom select candidat; } //On tri par le prénom, puis par le nom else { query = from candidat in context.Candidat orderby candidat.prenom, candidat.nom select candidat; } candidatTrie = query.ToList(); } // Fin du using return(candidatTrie); }
/// <summary> /// Affiche la commune qui a le plus fort taux d'abstentions ou le plus fort taux de votants selon l'objet qui déclenche cet évènement /// </summary> /// <param name="sender">MenuItem : comPlusForTauxAbsMenuItem ou comPlusForTauxVotMenuItem</param> /// <param name="e">Click sur le MenuItem : comPlusForTauxAbsMenuItem ou comPlusForTauxVotMenuItem</param> private void comPlusForTauxMenuItem_Click(object sender, RoutedEventArgs e) { using (var context = new electionEDM()) { var query = from statistiques in context.stats_election select statistiques; float taux = 0F, bestTaux = 0; //Soit les taux d'abstentions, soit les taux de votants. string inseeBestCommune = ""; //code insee de la commune avec le meilleur taux (abstentions ou votants) int i = 0; //index du foreach //On parcourt tous les éléments de stats_election pour trouver le plus fort taux (soit d'abstentions, soit de votants) foreach (var statoche in query) { if (sender.Equals(comPlusForTauxAbsMenuItem)) { taux = (float)((float)statoche.abstentions / (float)statoche.inscrits) * 100; } else if (sender.Equals(comPlusForTauxVotMenuItem)) { taux = (float)((float)statoche.votants / (float)statoche.inscrits) * 100; } else if (sender.Equals(comPlusForTauxBlancInsMenuItem)) { taux = (float)((float)statoche.blancs_et_nuls / (float)statoche.inscrits) * 100; } else if (sender.Equals(comPlusForTauxBlancVotMenuItem)) { taux = (float)((float)statoche.blancs_et_nuls / (float)statoche.votants) * 100; } if (i == 0 || taux > bestTaux) { bestTaux = taux; inseeBestCommune = statoche.insee; } i++; } //On récupère le libelle de la commune selon le code insee de la commune avec le plus fort taux issu de stats_election try { var queryCommune = (from communiste in context.Commune where communiste.insee == inseeBestCommune select communiste.libelle_de_la_commune).Single(); TextBox tb = new TextBox(); proprieteTextBoxAffichageSQL(tb); affichageStackPanel.Children.Clear(); affichageStackPanel.Children.Add(tb); if (sender.Equals(comPlusForTauxAbsMenuItem)) { tb.Text = "La commune avec le plus fort taux d'abstentions est " + queryCommune + " avec " + bestTaux + "% d'abstentions"; } else if (sender.Equals(comPlusForTauxVotMenuItem)) { tb.Text = "La commune avec le plus fort taux de votants est " + queryCommune + " avec " + bestTaux + "% de votants"; } else if (sender.Equals(comPlusForTauxBlancInsMenuItem)) { tb.Text = "La commune avec le plus fort taux de votes blancs sur le nombre d'inscrits est " + queryCommune + " avec " + bestTaux + "% de votes blancs"; } else if (sender.Equals(comPlusForTauxBlancVotMenuItem)) { tb.Text = "La commune avec le plus fort taux de votes blancs sur le nombre de votants est " + queryCommune + " avec " + bestTaux + "% de votes blancs"; } } catch { MessageBox.Show("Il y'a eu un problème dans la récupération de la commune avec \n le plus fort taux de votants."); } } //Fin du using } //Fin de comPlusForTauxMenuItem
/// <summary> /// Permet de récupérer toutes les données issues du fichier csv election_municipale_2014 /// </summary> public static void recuperationDesDonnees(MainWindow pagePrincipale) { Candidat[] candidat = new Candidat[5]; Departement dept = new Departement(); Commune comm = new Commune(); stats_election stat = new stats_election(); Parti[] parti = new Parti[5]; Liste[] list = new Liste[5]; calcul_sieges[] csieges = new calcul_sieges[5]; election[] elect = new election[5]; bool leDepartementExiste; AnneeElection year = new AnneeElection(); year.annee = 2014; year.insertionAnnee(); string[][] allData = lireToutesLesDonnees(); //Lire toutes les données depuis le fichier csv et les stocker dans allData for (int i = 1; i < allData.Length; i++) { reinitialisationTableauDeDonnees(candidat, parti, list, csieges, elect); comm.reinitialisationCommune(); dept.reinitialisationDepartement(); stat.reinitialisationStatsElection(); for (int colonne = 0; colonne < 75; colonne++) { //La première ligne i = 0 n'est pas insérée car c'est le titre des colonnes if (i > 0) { switch (colonne) { //code du département case 1: //Si le département n'existe pas, on modifie la classe Departement leDepartementExiste = leDepartementExisteDeja(Convert.ToSByte(allData[i][colonne])); if (!leDepartementExiste) { dept.code_du_departement = Convert.ToSByte(allData[i][colonne]); } //comm.Departement = new Departement(); //comm.Departement.code_du_departement = Convert.ToSByte(allData[i][colonne]); ; break; //type du scrutin case 2: break; //libelle_du_departement case 3: leDepartementExiste = leDepartementExisteDeja(Convert.ToSByte(allData[i][1])); if (!leDepartementExiste) { dept.libelle_du_departement = allData[i][colonne]; } //comm.Departement.libelle_du_departement = allData[i][colonne]; break; //code de la commune case 4: if (allData[i][colonne] == "") { comm.code_de_la_commune = "vide"; } comm.code_de_la_commune = allData[i][colonne]; break; //libelle_de_la_commune case 5: comm.libelle_de_la_commune = allData[i][colonne]; break; //insee case 6: comm.insee = allData[i][colonne]; break; //geo_point_2 case 7: comm.geo_point_2d = allData[i][colonne]; break; //geo_shape case 8: comm.geo_shape = allData[i][colonne]; break; //inscrits case 9: stat.inscrits = Convert.ToInt32(allData[i][colonne]); break; //abstentions case 10: stat.abstentions = Convert.ToInt32(allData[i][colonne]); break; //votants case 12: stat.votants = Convert.ToInt32(allData[i][colonne]); break; //blancs_et_nuls case 14: stat.blancs_et_nuls = Convert.ToInt32(allData[i][colonne]); break; //exprimes case 17: stat.exprimes = Convert.ToInt32(allData[i][colonne]); break; //code_nuance case 20: parti[0].code_nuance = allData[i][colonne]; break; //sexe_01 case 21: candidat[0].sexe = allData[i][colonne]; break; //nom_01 case 22: candidat[0].nom = allData[i][colonne]; break; //prenom_01 case 23: candidat[0].prenom = allData[i][colonne]; break; //liste_01 case 24: list[0].nomListe = allData[i][colonne]; break; //sieges_elu_01 case 25: csieges[0].sieges_elus = Convert.ToSByte(allData[i][colonne]); break; //sieges_secteur_01 case 26: csieges[0].sieges_secteurs = Convert.ToSByte(allData[i][colonne]); break; //sieges_cc_01 case 27: csieges[0].sieges_cc = Convert.ToSByte(allData[i][colonne]); break; //voix_01 case 28: elect[0].voix = Convert.ToInt32(allData[i][colonne]); break; //code_nuance_02 case 31: parti[1].code_nuance = allData[i][colonne]; break; //sexe_02 case 32: candidat[1].sexe = allData[i][colonne]; break; //nom_02 case 33: candidat[1].nom = allData[i][colonne]; break; //prenom_02 case 34: candidat[1].prenom = allData[i][colonne]; break; //liste_02 case 35: list[1].nomListe = allData[i][colonne]; break; //sieges_elu_02 case 36: csieges[1].sieges_elus = Convert.ToSByte(allData[i][colonne]); break; //sieges_secteur_02 case 37: csieges[1].sieges_secteurs = Convert.ToSByte(allData[i][colonne]); break; //sieges_cc_02 case 38: csieges[1].sieges_cc = Convert.ToSByte(allData[i][colonne]); break; //voix_02 case 39: elect[1].voix = Convert.ToInt32(allData[i][colonne]); break; // code nuance_03 case 42: if (allData[i][colonne] != "") { parti[2].code_nuance = allData[i][colonne]; } break; //sexe_03 case 43: if (allData[i][colonne] != "") { candidat[2].sexe = allData[i][colonne]; } break; //nom_03 case 44: if (allData[i][colonne] != "") { candidat[2].nom = allData[i][colonne]; } break; //prenom_03 case 45: if (allData[i][colonne] != "") { candidat[2].prenom = allData[i][colonne]; } break; //liste_03 case 46: if (allData[i][colonne] != "") { list[2].nomListe = allData[i][colonne]; } break; //sieges_elu_03 case 47: if (allData[i][colonne] != "") { csieges[2].sieges_elus = Convert.ToSByte(allData[i][colonne]); } break; //sieges_secteur_03 case 48: if (allData[i][colonne] != "") { csieges[2].sieges_secteurs = Convert.ToSByte(allData[i][colonne]); } break; //sieges_cc_03 case 49: if (allData[i][colonne] != "") { csieges[2].sieges_cc = Convert.ToSByte(allData[i][colonne]); } break; //voix_03 case 50: if (allData[i][colonne] != "") { elect[2].voix = Convert.ToInt32(allData[i][colonne]); } break; // code nuance_04 case 53: if (allData[i][colonne] != "") { parti[3].code_nuance = allData[i][colonne]; } break; //sexe_04 case 54: if (allData[i][colonne] != "") { candidat[3].sexe = allData[i][colonne]; } break; //nom_04 case 55: if (allData[i][colonne] != "") { candidat[3].nom = allData[i][colonne]; } break; //prenom_04 case 56: if (allData[i][colonne] != "") { candidat[3].prenom = allData[i][colonne]; } break; //liste_04 case 57: if (allData[i][colonne] != "") { list[3].nomListe = allData[i][colonne]; } break; //sieges_elus_04 case 58: if (allData[i][colonne] != "") { csieges[3].sieges_elus = Convert.ToSByte(allData[i][colonne]); } break; //sieges_secteur_04 case 59: if (allData[i][colonne] != "") { csieges[3].sieges_secteurs = Convert.ToSByte(allData[i][colonne]); } break; //sieges_cc_04 case 60: if (allData[i][colonne] != "") { csieges[3].sieges_cc = Convert.ToSByte(allData[i][colonne]); } break; //voix_04 case 61: if (allData[i][colonne] != "") { elect[3].voix = Convert.ToInt32(allData[i][colonne]); } break; // code_nuance_05 case 64: if (allData[i][colonne] != "") { parti[4].code_nuance = allData[i][colonne]; } break; //sexe_05 case 65: if (allData[i][colonne] != "") { candidat[4].sexe = allData[i][colonne]; } break; //nom_05 case 66: if (allData[i][colonne] != "") { candidat[4].nom = allData[i][colonne]; } break; //prenom_05 case 67: if (allData[i][colonne] != "") { candidat[4].prenom = allData[i][colonne]; } break; //liste_05 case 68: if (allData[i][colonne] != "") { list[4].nomListe = allData[i][colonne]; } break; //sieges_elu_05 case 69: if (allData[i][colonne] != "") { csieges[4].sieges_elus = Convert.ToSByte(allData[i][colonne]); } break; //sieges_secteur_05 case 70: if (allData[i][colonne] != "") { csieges[4].sieges_secteurs = Convert.ToSByte(allData[i][colonne]); } break; //sieges_cc_05 case 71: if (allData[i][colonne] != "") { csieges[4].sieges_cc = Convert.ToSByte(allData[i][colonne]); } break; //voix_05 case 72: if (allData[i][colonne] != "") { elect[4].voix = Convert.ToInt32(allData[i][colonne]); } break; } //Fin du switch if (colonne == 74) { using (var context = new electionEDM()) { dept.insertionDonneesDepartement(); parti[0].insertionDonneesParti(parti); comm.insertionCleEtrangereCommune(dept, Convert.ToSByte(allData[i][1]), allData[i][3]); comm.insertionDonneesCommune(dept); list[0].insertionCleEtrangereListe(list, parti); list[0].insertionDonneesListe(list); candidat[0].insertionCleEtrangereCandidat(candidat, list); candidat[0].insertionDonneesCandidat(candidat); elect[0].insertionCleEtrangereElection(elect, year, candidat, comm); elect[0].insertionDonneesElection(elect); stat.insertionCleEtrangereStatsElection(year, comm); stat.insertionDonneesStatElection(year, comm); csieges[0].insertionCleEtrangereCalculSieges(csieges, comm, year, list); csieges[0].insertionDonneesCalculSieges(csieges, comm, year, list); } } } //Fin du if(i>0) } //Fin du for des colonnes pagePrincipale.modificationLabelInsertionLignes(i); } //Fin du for pour les lignes }