/// <summary>
        /// Permet de supprimer un cabinet de la base de données
        /// Méthode utilisé seulement dans les tests pour éviter de se retrouver avec des cabinets factice
        /// </summary>
        /// <param name="unCabinet">Un objet Cabinet</param>
        public static void supprimerCabinet(Cabinet unCabinet)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();


                // On se sert de l'objet passé en paramètre pour supprimer le bon champs
                maCommande.CommandText = "DELETE FROM `cabinet` WHERE `id` = @idCabinet;";
                maCommande.Parameters.AddWithValue("@idCabinet", unCabinet.getIdCabinet());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                // Fermeture de la connection
                maConnection.Close();


                // On ve se synchroniser avec la base de données
                PasserelleSuiviA.initListeCabinet();
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet d'insérer un objet Medecin sans visiteur en base de données
        /// </summary>
        /// <param name="unMedecin">Un objet Medecin</param>
        public static void ajoutMedecinSansVisiteur(Medecin unMedecin)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();
                maCommande.CommandText = "INSERT INTO `medecin`(`nom`, `prenom`, `idCabinet`) VALUES (@nom, @prenom, @idCabinet);";
                // On associe les attributs de l'objet passé en paramètre à ceux de la requête
                maCommande.Parameters.AddWithValue("@nom", unMedecin.getNom());
                maCommande.Parameters.AddWithValue("@prenom", unMedecin.getPrenom());
                maCommande.Parameters.AddWithValue("@idCabinet", unMedecin.getLeCabinet().getIdCabinet());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                maCommande.Clone();


                // On se synchronise avec la BDD
                PasserelleSuiviA.initListeCabinet();
                PasserelleSuiviA.initListeActeur();
                PasserelleSuiviA.initListeMedecin();
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet d'insérer un objet Cabinet en base de données
        /// </summary>
        /// <param name="unCabinet">Un objet Cabinet</param>
        public static void ajoutCabinet(Cabinet unCabinet)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();
                maCommande.CommandText = "INSERT INTO `cabinet`(`longitudeGPS`, `latitudeGPS`, `cp`, `ville`, `rue`) VALUES (@longitudeGPS, @latitudeGPS, @cp, @ville, @rue);";
                // On associe les attributs de l'objet passé en paramètre à ceux de la requête
                maCommande.Parameters.AddWithValue("@longitudeGPS", unCabinet.getLongitudeGPS());
                maCommande.Parameters.AddWithValue("@latitudeGPS", unCabinet.getLatitudeGPS());
                maCommande.Parameters.AddWithValue("@cp", unCabinet.getCP());
                maCommande.Parameters.AddWithValue("@ville", unCabinet.getVille());
                maCommande.Parameters.AddWithValue("@rue", unCabinet.getRue());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                maCommande.Clone();


                // On se synchronise avec la BDD
                PasserelleSuiviA.initListeCabinet();
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet de mettre à jour une visite présente en base de données
        /// </summary>
        /// <param name="uneVisite">Un objet Visite</param>
        public static void metAJourVisite(Visite uneVisite)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();


                // On se sert de l'objet passé en paramètre pour modifier plusieurs champs
                maCommande.CommandText = "UPDATE `visite` SET `dateVisite`=@dateVisite,`estVisiteProgramme`=@estVisiteProgramme,`heureArriveeCabinet`=@heureArriveeCabinet,`heureDebutEntretien`=@heureDebutEntretien,`heureDepartCabinet`=@heureDepartCabinet WHERE `id` = @idVisite;";
                maCommande.Parameters.AddWithValue("@idVisite", uneVisite.getIdVisite());
                maCommande.Parameters.AddWithValue("@dateVisite", uneVisite.getDateVisite());
                maCommande.Parameters.AddWithValue("@estVisiteProgramme", uneVisite.getEstVisiteProgramme());
                maCommande.Parameters.AddWithValue("@heureArriveeCabinet", uneVisite.getHeureArriveeCabinet());
                maCommande.Parameters.AddWithValue("@heureDebutEntretien", uneVisite.getHeureDebutEntretien());
                maCommande.Parameters.AddWithValue("@heureDepartCabinet", uneVisite.getHeureDepartCabinet());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                // Fermeture de la connection
                maConnection.Close();



                // On va se synchroniser avec la base de données
                PasserelleSuiviA.initListeCabinet();
                PasserelleSuiviA.initListeActeur();
                PasserelleSuiviA.initListeMedecin();
                PasserelleSuiviA.initListeVisite(uneVisite.getLActeur().getIdActeur());
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet d'insérer un objet Visite en base de données
        /// </summary>
        /// <param name="uneVisite">Un objet Visite</param>
        public static void ajoutVisiste(Visite uneVisite)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();
                maCommande.CommandText = "INSERT INTO `visite`(`dateVisite`, `estVisiteProgramme`, `heureArriveeCabinet`, `heureDebutEntretien`, `heureDepartCabinet`, `idMedecin`, `idActeur`) VALUES (@dateVisite, @estVisiteProgramme, @heureArriveeCabinet, @heureDebutEntretien, @heureDepartCabinet, @idMedecin, @idActeur);";
                // On associe les attributs de l'objet passé en paramètre à ceux de la requête
                maCommande.Parameters.AddWithValue("@dateVisite", uneVisite.getDateVisite());
                maCommande.Parameters.AddWithValue("@estVisiteProgramme", uneVisite.getEstVisiteProgramme());
                maCommande.Parameters.AddWithValue("@heureArriveeCabinet", uneVisite.getHeureArriveeCabinet());
                maCommande.Parameters.AddWithValue("@heureDebutEntretien", uneVisite.getHeureDebutEntretien());
                maCommande.Parameters.AddWithValue("@heureDepartCabinet", uneVisite.getHeureDepartCabinet());
                maCommande.Parameters.AddWithValue("@idMedecin", uneVisite.getLeMedecin().getIdMedecin());
                maCommande.Parameters.AddWithValue("@idActeur", uneVisite.getLActeur().getIdActeur());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                maCommande.Clone();


                // On se synchronise avec la BDD
                PasserelleSuiviA.initListeCabinet();
                PasserelleSuiviA.initListeActeur();
                PasserelleSuiviA.initListeMedecin();
                PasserelleSuiviA.initListeVisite(uneVisite.getLActeur().getIdActeur());
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet de mettre à jour un médecin et son visiteur présent en base de données
        /// </summary>
        /// <param name="unMedecin">Un objet Medecin</param>
        public static void metAJourMedecinEtActeur(Medecin unMedecin)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();


                // On se sert de l'objet passé en paramètre pour modifier plusieurs champs
                maCommande.CommandText = "UPDATE `medecin` SET `nom`=@nom,`prenom`=@prenom, `idActeur`=@idActeur WHERE `id` = @idMedecin;";
                maCommande.Parameters.AddWithValue("@idMedecin", unMedecin.getIdMedecin());
                maCommande.Parameters.AddWithValue("@nom", unMedecin.getNom());
                maCommande.Parameters.AddWithValue("@prenom", unMedecin.getPrenom());
                maCommande.Parameters.AddWithValue("@idActeur", unMedecin.getLActeur().getIdActeur());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                // Fermeture de la connection
                maConnection.Close();


                // On va se synchroniser avec la base de données
                PasserelleSuiviA.initListeCabinet();
                PasserelleSuiviA.initListeActeur();
                PasserelleSuiviA.initListeMedecin();
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }
        /// <summary>
        /// Permet de mettre à jour un cabinet présent en base de données
        /// </summary>
        /// <param name="unCabinet">Un objet Cabinet</param>
        public static void metAJourCabinet(Cabinet unCabinet)
        {
            try
            {
                // Ouverture de la connection
                MySqlConnection maConnection = new MySqlConnection(connectionString);
                maConnection.Open();


                // Création de la requête
                MySqlCommand maCommande = maConnection.CreateCommand();


                // On se sert de l'objet passé en paramètre pour modifier plusieurs champs
                maCommande.CommandText = "UPDATE `cabinet` SET `cp`=@cp,`ville`=@ville,`rue`=@rue WHERE `id` = @idCabinet;";
                maCommande.Parameters.AddWithValue("@idCabinet", unCabinet.getIdCabinet());
                maCommande.Parameters.AddWithValue("@cp", unCabinet.getCP());
                maCommande.Parameters.AddWithValue("@ville", unCabinet.getVille());
                maCommande.Parameters.AddWithValue("@rue", unCabinet.getRue());


                // Exécution de la requête
                maCommande.ExecuteNonQuery();
                // Fermeture de la connection
                maConnection.Close();


                // On va se synchroniser avec la base de données
                PasserelleSuiviA.initListeCabinet();
            }
            catch (Exception erreur)
            {
                // Permet la gestion des erreurs
                throw erreur;
            }
        }