Пример #1
0
        // ****************************************
        //		     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é");
                    }
                }
            }
        }
Пример #3
0
        /// <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();
            }
        }
Пример #4
0
        /// <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
                    {
                    }
                }
            }
        }
Пример #6
0
        /// <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
                        {
                        }
                    }
                }
            }
        }
Пример #7
0
        // ************************
        //		  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);
        }
Пример #9
0
        // ************************************************************
        //							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;
                    }
                }
            }
        }
Пример #10
0
        /// <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
Пример #11
0
        /// <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)
        }
Пример #12
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)
        }
Пример #13
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);
        }
Пример #14
0
        /// <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)
        }
Пример #15
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");
                            }
                        }
                    }
                }
            }
        }
Пример #16
0
        /// <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é");
                            }
                        }
                    }
                }
            }
        }
Пример #17
0
        /// <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);
        }
Пример #18
0
        /// <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
        }
Пример #19
0
        /// <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
                            {
                            }
                        }
                    }
                }
            }
        }
Пример #20
0
        /// <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;
                    }
                }
            }
        }
Пример #21
0
        /// <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
                        {
                        }
                    }
                }
            }
        }
Пример #22
0
        /// <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);
        }
Пример #23
0
        /// <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
Пример #24
0
        /// <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
        }