Пример #1
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;
                    }
                }
            }
        }
Пример #2
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;
                    }
                }
            }
        }
Пример #3
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
        }