/// <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; } }