/// <summary>
        /// Méthode permettant d'insérer un menu dans la base de données.
        /// </summary>
        /// <param name="menu">Le menu à insérer.</param>
        public void Insert(Menu menu)
        {
            try
            {
                connexion = new MySqlConnexion();

                string requete = string.Format("INSERT INTO Menus (idMembre, nom, nbPersonnes, dateMenu) VALUES ({0}, '{1}', {2}, '{3}')", App.MembreCourant.IdMembre, menu.Nom, menu.NbPersonnes, menu.DateCreation.ToString("yyyy-MM-dd"));
                connexion.Query(requete);

                foreach(Plat platCourant in menu.ListePlats)
                {
                    requete = string.Format("INSERT INTO MenusPlats (idMenu, idPlat) VALUES ({0}, {1})", Retrieve(new RetrieveMenuArgs { IdMembre = App.MembreCourant.IdMembre, Nom = menu.Nom }).IdMenu, platCourant.IdPlat);
                    connexion.Query(requete);
                }
            }
            catch(MySqlException)
            {
                throw;
            }
        }
        /// <summary>
        /// Méthode permettant d'obtenir un menu sauvegardé dans la base de données.
        /// </summary>
        /// <param name="args">Les arguments permettant de retrouver le menu.</param>
        /// <returns>Un objet Menu.</returns>
        public Menu Retrieve(RetrieveMenuArgs args)
        {
            Menu menu = new Menu();

            try
            {
                connexion = new MySqlConnexion();

                string requete = string.Format("SELECT * FROM Menus WHERE idMembre = {0} && Nom = '{1}'", args.IdMembre, args.Nom);

                DataSet dataSetMenus = connexion.Query(requete);
                DataTable tableMenus = dataSetMenus.Tables[0];

                if(tableMenus.Rows.Count != 0)
                {
                    menu = ConstruireMenu(tableMenus.Rows[0]);

                    // Ajout des plats du menu.
                    requete = string.Format("SELECT * FROM MenusPlats WHERE idMenu = {0}", menu.IdMenu);

                    DataSet dataSetPlats = connexion.Query(requete);
                    DataTable tablePlats = dataSetPlats.Tables[0];

                    foreach (DataRow rowPlat in tablePlats.Rows)
                    {
                        menu.ListePlats.Add(platService.Retrieve(new RetrievePlatArgs { IdPlat = (int)rowPlat["idPlat"] }));
                    }
                }
            }
            catch (MySqlException)
            {
                throw;
            }

            return menu;
        }
        /// <summary>
        /// Méthode permettant de mettre à jour un menu dans la base de données.
        /// </summary>
        /// <param name="menu">Le menu à mettre à jour.</param>
        public void Update(Menu menu)
        {
            try
            {
                connexion = new MySqlConnexion();

                string requete = string.Format("UPDATE Menus SET idMembre = {0}, nom = '{1}', nbPersonnes = {2}, dateMenu = '{3}' WHERE idMenu = {3}", App.MembreCourant.IdMembre, menu.Nom, menu.NbPersonnes, menu.DateCreation.ToString("yyyy-MM-dd"), menu.IdMenu);

                connexion.Query(requete);

                string requeteEffacerPlats = string.Format("DELETE FROM MenusPlats WHERE idMenu = {0}", menu.IdMenu);

                connexion.Query(requeteEffacerPlats);

                foreach (Plat platCourant in menu.ListePlats)
                {
                    requete = string.Format("INSERT INTO MenusPlats (idMenu, idPlat) VALUES ({0}, {1})", Retrieve(new RetrieveMenuArgs { IdMembre = App.MembreCourant.IdMembre, Nom = menu.Nom }).IdMenu, platCourant.IdPlat);
                    connexion.Query(requete);
                }

            }
            catch (MySqlException)
            {
                throw;
            }
        }