/// <summary>
        /// insertion des clés étrangères de la table association election
        /// </summary>
        /// <param name="elect">La table association election</param>
        /// <param name="year">Année de l'election municipale</param>
        /// <param name="candidat">Candidats à l'election municipales</param>
        /// <param name="comm">La commune où a eu lieu l'election</param>
        /// <returns></returns>
        public static election [] insertionCleEtrangereElection(election[] elect, AnneeElection year, Candidat [] candidat, Commune comm)
        {
            for (int i = 0; i < elect.Length; i++)
            {
                if (elect[i] != null)
                {
                    elect[i].Candidat      = candidat[i];
                    elect[i].Commune       = comm;
                    elect[i].AnneeElection = year;
                }
            }

            return(elect);
        }
 /// <summary>
 /// insertion de la table stockant le nombre de sièges affectés à une commune
 /// </summary>
 /// <param name="csiege"></param>
 public static void insertionDonneesCalculSieges(calcul_sieges [] csiege, Commune com, AnneeElection year, Liste [] list)
 {
     for (int i = 0; i < csiege.Length; i++)
     {
         if (csiege != null)
         {
             csiege[i].Commune       = com;
             csiege[i].AnneeElection = year;
             csiege[i].Liste         = list[i];
         }
     }
 }
        /// <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 static calcul_sieges [] insertionCleEtrangereCalculSieges(calcul_sieges [] csiege, Commune comm, AnneeElection year, Liste[] liste)
        {
            for (int i = 0; i < csiege.Length; i++)
            {
                if (csiege[i] != null && liste[i] != null)
                {
                    csiege[i].Commune       = comm;
                    csiege[i].AnneeElection = year;
                    csiege[i].Liste         = liste[i];
                }
            }

            return(csiege);
        }
        /// <summary>
        /// Insertion des clés étrangères relatives à la table association : stats_election
        /// </summary>
        /// <param name="stat">La table association : stats_election</param>
        /// <param name="year">Année de l'élection municipale</param>
        /// <param name="comm">Nom de la commune de laquelle on va récupérer des statistiques</param>
        /// <returns></returns>
        public static stats_election insertionCleEtrangereStatsElection(stats_election stat, AnneeElection year, Commune comm)
        {
            if (stat != null)
            {
                stat.AnneeElection = year;
                stat.Commune       = comm;
            }

            return(stat);
        }
        static void Main(string[] args)
        {
            AnneeElection year = new AnneeElection();

            year.annee = 2014;
            string[][] allData = lireToutesLesDonnees();             //Lire toutes les données depuis le fichier csv et les stocker dans allData

            for (int i = 0; i < allData.Length; i++)
            {
                reinitialisationTableauDeDonnees(candidat, parti, list, csieges, elect);
                for (int colonne = 0; colonne < 75; colonne++)
                {
                    //comm = reinitialisationCommune(comm);
                    //dept = reinitialisationDepartement(dept);
                    //stat = reinitialisationStatsElection(stat);

                    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:

                            if (!leDepartementExiste)
                            {
                                dept.libelle_du_departement = allData[i][colonne];
                            }
                            //comm.Departement.libelle_du_departement = allData[i][colonne];
                            break;

                        //code de la commune
                        case 4:
                            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 election_municipaleEntities())
                            {
                                insertionDonneesDepartement(dept);
                                insertionDonneesParti(parti);

                                comm = insertionCleEtrangereCommune(comm, Convert.ToSByte(allData[i][1]), allData[i][3]);
                                insertionDonneesCommune(comm, dept);

                                list = insertionCleEtrangereListe(list, parti);
                                insertionDonneesListe(list);

                                candidat = insertionCleEtrangereCandidat(candidat, list);
                                insertionDonneesCandidat(candidat);

                                elect = insertionCleEtrangereElection(elect, year, candidat, comm);
                                insertionDonneesElection(elect);

                                stat = insertionCleEtrangereStatsElection(stat, year, comm);
                                insertionDonneesStatElection(stat);

                                csieges = insertionCleEtrangereCalculSieges(csieges, comm, year, list);
                                insertionDonneesCalculSieges(csieges, comm, year, list);

                                Console.WriteLine(i + " insertion");
                            }
                        }
                    } //Fin du if
                }     //Fin du for des colonnes
            }         //Fin du for pour les lignes
        }             //Fin du main