/// <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 = {4}", 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; } }
/// <summary> /// Méthode permettant de mettre à jour un plat dans la base de données suite à un vote. /// </summary> /// <param name="plat">Le plat à mettre à jour.</param> public void UpdateVote(Plat plat) { try { connexion = new MySqlConnexion(); // Obtenir le idTypePlat. string requete = string.Format("SELECT idTypePlat FROM TypesPlats WHERE typePlat = '{0}'", plat.TypePlat); DataSet dataSetType = connexion.Query(requete); DataTable tableType = dataSetType.Tables[0]; int idTypePlat = (int)(tableType.Rows[0]["idTypePlat"]); string note = plat.Note.ToString(); if (note.Contains(",")) { note = note.Replace(",", "."); } requete = string.Format("UPDATE Plats SET idTypePlat = {0}, nom = '{1}', imageUrl = '{2}', note = {3}, nbVotes = {4} WHERE idPlat = {5}", idTypePlat, plat.Nom.Replace("'", "''"), plat.ImageUrl, note, plat.NbVotes, plat.IdPlat); connexion.Query(requete); } catch (Exception) { throw; } }
/// <summary> /// Méthode de mise à jour d'un aliment dans la base de données. /// </summary> /// <param name="unAliment">Aliment qu'il faut mettre à jour dans la base de données.</param> public void Update(Aliment unAliment) { string requeteCategoriesAlim = string.Format("SELECT * FROM CategoriesAlimentaires WHERE categorieAlimentaire = '{0}'", unAliment.Categorie); try { using (MySqlConnexion connexion = new MySqlConnexion()) using (DataSet dataSetCategories = connexion.Query(requeteCategoriesAlim)) using (DataTable tableCategories = dataSetCategories.Tables[0]) { int idCategorie = 0; foreach (DataRow rowCategories in tableCategories.Rows) { idCategorie = (int)rowCategories["idCategorieAlimentaire"]; } string requeteUnitesMesure = string.Format("SELECT * FROM UnitesMesure WHERE uniteMesure = '{0}'", unAliment.UniteMesure); using (DataSet dataSetUnites = connexion.Query(requeteUnitesMesure)) using (DataTable tableUnites = dataSetUnites.Tables[0]) { int idUnite = 0; foreach (DataRow rowUnites in tableUnites.Rows) { idUnite = (int)rowUnites["idUniteMesure"]; } string requeteUpdate = string.Format("UPDATE Aliments SET idUniteMesure = {0}, idCategorieAlimentaire = {1}, nom = '{2}', mesure = {3}, imageURL = '{4}' WHERE idAliment = {5}", idUnite, idCategorie, unAliment.Nom, unAliment.Mesure, unAliment.ImageURL, unAliment.IdAliment); connexion.Query(requeteUpdate); int idAliment = (int)unAliment.IdAliment; int idEnergie = Associer_Valeur_Nutritionnelle("Calories"); int idProteine = Associer_Valeur_Nutritionnelle("Protéines"); int idGlucide = Associer_Valeur_Nutritionnelle("Glucides"); int idFibre = Associer_Valeur_Nutritionnelle("Fibres"); int idLipide = Associer_Valeur_Nutritionnelle("Lipides"); int idSodium = Associer_Valeur_Nutritionnelle("Sodium"); int idCholesterol = Associer_Valeur_Nutritionnelle("Cholestérol"); string requeteDelete = string.Format("DELETE FROM AlimentsValeursNutritionnelles WHERE idAliment = {0}", idAliment); connexion.Query(requeteDelete); Inserer_Valeur_Nutritionnelle(idEnergie, idAliment, unAliment.Energie); Inserer_Valeur_Nutritionnelle(idProteine, idAliment, unAliment.Proteine); Inserer_Valeur_Nutritionnelle(idGlucide, idAliment, unAliment.Glucide); Inserer_Valeur_Nutritionnelle(idFibre, idAliment, unAliment.Fibre); Inserer_Valeur_Nutritionnelle(idLipide, idAliment, unAliment.Lipide); Inserer_Valeur_Nutritionnelle(idSodium, idAliment, unAliment.Sodium); Inserer_Valeur_Nutritionnelle(idCholesterol, idAliment, unAliment.Cholesterol); } } } catch (Exception) { throw; } }
/// <summary> /// Méthode d'insertion d'un nouveau plat dans la base de données. /// </summary> /// <param name="unPlat">Le plat à insérer dans la base de donnée.</param> public void Insert(Plat unPlat) { try { connexion = new MySqlConnexion(); string requeteTypePlat = string.Format("SELECT * FROM TypesPlats WHERE typePlat = '{0}'", unPlat.TypePlat); DataSet dataSetTypes = connexion.Query(requeteTypePlat); DataTable tableTypes = dataSetTypes.Tables[0]; int idType = 0; foreach (DataRow rowType in tableTypes.Rows) { idType = (int)rowType["idTypePlat"]; } string requeteCreateur = string.Format("SELECT * FROM Membres WHERE nomUtilisateur = '{0}'", unPlat.Createur); DataSet dataSetCreateur = connexion.Query(requeteCreateur); DataTable tableCreateur = dataSetCreateur.Tables[0]; int idMembre = 0; foreach (DataRow rowCreateur in tableCreateur.Rows) { idMembre = (int)rowCreateur["idMembre"]; } string requeteInsert = string.Format("INSERT INTO Plats (idMembre, idTypePlat, nom, description, imageUrl) VALUES ({0}, {1}, '{2}', '{3}', '{4}')", idMembre, idType, unPlat.Nom.Replace("'", "''"), unPlat.Description, unPlat.ImageUrl); connexion.Query(requeteInsert); string requetePlat = string.Format("SELECT * FROM Plats WHERE nom = '{0}'", unPlat.Nom.Replace("'", "''")); DataSet dataSetPlat = connexion.Query(requetePlat); DataTable tablePlat = dataSetPlat.Tables[0]; int idPlat = 0; foreach (DataRow rowPlat in tablePlat.Rows) { idPlat = (int)rowPlat["idPlat"]; } for (int i = 0; i < unPlat.ListeIngredients.Count; i++) { string requeteInsertAlimentPlat = string.Format("INSERT INTO PlatsAliments (idPlat, idAliment, quantite) VALUES ({0}, {1}, {2})", idPlat, unPlat.ListeIngredients[i].IdAliment, unPlat.ListeIngredients[i].Quantite); connexion.Query(requeteInsertAlimentPlat); } } catch (Exception) { throw; } }
/// <summary> /// Méthode d'insertion d'un nouveau plat dans la base de données. /// </summary> /// <param name="unAliment"></param> public void Insert(Plat unPlat) { try { connexion = new MySqlConnexion(); string requeteTypePlat = string.Format("SELECT * FROM TypesPlats WHERE typePlat = '{0}'", unPlat.TypePlat); DataSet dataSetTypes = connexion.Query(requeteTypePlat); DataTable tableTypes = dataSetTypes.Tables[0]; int idType = 0; foreach (DataRow rowType in tableTypes.Rows) { idType = (int)rowType["idTypePlat"]; } string requeteCreateur = string.Format("SELECT * FROM Membres WHERE nomUtilisateur = '{0}'", unPlat.Createur); DataSet dataSetCreateur = connexion.Query(requeteCreateur); DataTable tableCreateur = dataSetCreateur.Tables[0]; int idMembre = 0; foreach (DataRow rowCreateur in tableCreateur.Rows) { idMembre = (int)rowCreateur["idMembre"]; } string requeteInsert = string.Format("INSERT INTO Plats (idMembre, idTypePlat, nom, description, imageUrl, dateAjout) VALUES ({0}, {1}, '{2}', '{3}', '{4}', '{5}')", idMembre, idType, unPlat.Nom.Replace("'", "''"), unPlat.Description, unPlat.ImageUrl, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); connexion.Query(requeteInsert); string requetePlat = string.Format("SELECT * FROM Plats WHERE nom = '{0}'", unPlat.Nom.Replace("'", "''")); DataSet dataSetPlat = connexion.Query(requetePlat); DataTable tablePlat = dataSetPlat.Tables[0]; int idPlat = 0; foreach (DataRow rowPlat in tablePlat.Rows) { idPlat = (int)rowPlat["idPlat"]; } for (int i = 0; i < unPlat.ListeIngredients.Count; i++) { string requeteInsertAlimentPlat = string.Format("INSERT INTO PlatsAliments (idPlat, idAliment, quantite) VALUES ({0}, {1}, {2})", idPlat, unPlat.ListeIngredients[i].IdAliment, unPlat.ListeIngredients[i].Quantite); connexion.Query(requeteInsertAlimentPlat); } } catch (Exception) { throw; } }
/// <summary> /// Méthode de mise à jour d'un plat modifié dans la base de données. /// </summary> /// <param name="unPlat">Le plat à mettre à jour.</param> public void Update(Plat unPlat) { try { connexion = new MySqlConnexion(); string requeteTypePlat = string.Format("SELECT * FROM TypesPlats WHERE typePlat = '{0}'", unPlat.TypePlat); DataSet dataSetTypes = connexion.Query(requeteTypePlat); DataTable tableTypes = dataSetTypes.Tables[0]; int idType = 0; foreach (DataRow rowType in tableTypes.Rows) { idType = (int)rowType["idTypePlat"]; } string note = unPlat.Note.ToString(); string requeteUpdate; if (!String.IsNullOrWhiteSpace(note)) { if (note.Contains(",")) { note = note.Replace(",", "."); } requeteUpdate = string.Format("UPDATE Plats SET idTypePlat = {0}, nom = '{1}', imageUrl = '{2}', note = '{3}', nbVotes = {4}, description = '{5}' WHERE idPlat = {6}", idType, unPlat.Nom.Replace("'", "''"), unPlat.ImageUrl, note, unPlat.NbVotes, unPlat.Description, unPlat.IdPlat); } else { //string.Format remplace un NULL, par un espace vide, ce qui est invalide dans MySql et lance une exception puisqu'il essait de convertir un string vide à un Double (le type de donnée en bd pour note) //Dois vérifier manuellement et écrire NULL. requeteUpdate = string.Format("UPDATE Plats SET idTypePlat = {0}, nom = '{1}', imageUrl = '{2}', note = NULL, nbVotes = {3}, description = '{4}' WHERE idPlat = {5}", idType, unPlat.Nom.Replace("'", "''"), unPlat.ImageUrl, unPlat.NbVotes, unPlat.Description, unPlat.IdPlat); } connexion.Query(requeteUpdate); int idPlat = (int)unPlat.IdPlat; string requeteDelete = string.Format("DELETE FROM PlatsAliments WHERE idPlat = {0}", idPlat); connexion.Query(requeteDelete); for (int i = 0; i < unPlat.ListeIngredients.Count; i++) { string requeteInsertAlimentPlat = string.Format("INSERT INTO PlatsAliments (idPlat, idAliment, quantite) VALUES ({0}, {1}, {2})", idPlat, unPlat.ListeIngredients[i].IdAliment, unPlat.ListeIngredients[i].Quantite); connexion.Query(requeteInsertAlimentPlat); } } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des plats sauvegardé dans la base de données. /// </summary> /// <returns>Une liste contenant les plats.</returns> public IList <Plat> RetrieveAll() { List <Plat> resultat = new List <Plat>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Plats p INNER JOIN TypesPlats tp ON tp.idTypePlat = p.idTypePlat INNER JOIN Membres m ON m.idMembre = p.idMembre ORDER BY p.nom asc"; DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; foreach (DataRow rowPlat in tablePlats.Rows) { Plat plat = ConstruirePlat(rowPlat); plat.ListeIngredients = RetrieveAlimentsPlat(new RetrievePlatArgs { IdPlat = plat.IdPlat }); resultat.Add(plat); } } catch (Exception) { throw; } return(resultat); }
/// <summary> /// Méthode permettant d'obtenir un plat sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver le plat.</param> /// <returns>Un objet Plat.</returns> public Plat Retrieve(RetrievePlatArgs args) { Plat plat; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Plats p INNER JOIN TypesPlats tp ON tp.idTypePlat = p.idTypePlat INNER JOIN Membres m ON m.idMembre = p.idMembre WHERE idPlat = '{0}'", args.IdPlat); DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; plat = ConstruirePlat(tablePlats.Rows[0]); plat.ListeIngredients = RetrieveAlimentsPlat(new RetrievePlatArgs { IdPlat = plat.IdPlat }); } catch (Exception) { throw; } return(plat); }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des Objectifs sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les objectifs.</returns> public IList <Objectif> RetrieveAll() { IList <Objectif> resultat = new List <Objectif>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Objectifs"; DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; foreach (DataRow objectif in table.Rows) { resultat.Add(ConstruireObjectif(objectif)); } } catch (MySqlException) { throw; } return(resultat); }
/// <summary> /// Méthode permettant d'obtenir un ensemble de plats sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver les plats.</param> /// <returns>Une liste contenant les plats.</returns> public IList<Plat> RetrieveSome(RetrieveSuiviPlatArgs args) { List<Plat> resultat = new List<Plat>(); try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM SuiviPlats WHERE idMembre = {0}", args.IdMembre); DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; foreach (DataRow rowPlat in tablePlats.Rows) { Plat plat = platService.Retrieve(new RetrievePlatArgs { IdPlat = ((int)rowPlat["idPlat"]) }); plat.EstTricherie = ((bool)rowPlat["estTricherie"]); resultat.Add(plat); } } catch (Exception) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des Objectifs sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les objectifs.</returns> public IList<Objectif> RetrieveAll() { IList<Objectif> resultat = new List<Objectif>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Objectifs"; DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; foreach (DataRow objectif in table.Rows) { resultat.Add(ConstruireObjectif(objectif)); } } catch (MySqlException) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir l'id pour une valeur nutritionnelle désirée. /// </summary> /// <param name="uneValeur">Nom de la valeur nutritionnelle dont on veut l'id.</param> /// <returns>Un int contenant l'id de la valeur nutritionnelle désirée.</returns> private int Associer_Valeur_Nutritionnelle(String uneValeur) { int idValeur = 0; try { using (MySqlConnexion connexion = new MySqlConnexion()) { string requeteValeur = string.Format("SELECT * FROM ValeursNutritionnelles WHERE valeurNutritionnelle = '{0}'", uneValeur); using (DataSet dataSetValeur = connexion.Query(requeteValeur)) using (DataTable tableValeur = dataSetValeur.Tables[0]) { foreach (DataRow rowValeur in tableValeur.Rows) { idValeur = (int)rowValeur["idValeurNutritionnelle"]; } } } return(idValeur); } catch (Exception) { throw; } }
public IList<UniteMesure> RetrieveAll() { IList<UniteMesure> resultat = new List<UniteMesure>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM UnitesMesure"; DataSet dataSetUnitesMesure = connexion.Query(requete); DataTable tableUnitesMesure = dataSetUnitesMesure.Tables[0]; foreach (DataRow uniteMesure in tableUnitesMesure.Rows) { resultat.Add(ConstruireUniteMesure(uniteMesure)); } } catch (MySqlException) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des Préférences sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les préférences.</returns> public IList <Preference> RetrieveAll() { IList <Preference> resultat = new List <Preference>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Preferences"; DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; foreach (DataRow preference in table.Rows) { resultat.Add(ConstruirePreference(preference)); } } catch (MySqlException) { throw; } return(resultat); }
/// <summary> /// Méthode permettant d'obtenir un ensemble de plats sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver les plats.</param> /// <returns>Une liste contenant les plats.</returns> public IList <Plat> RetrieveSome(RetrieveSuiviPlatArgs args) { List <Plat> resultat = new List <Plat>(); try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM SuiviPlats WHERE idMembre = {0}", args.IdMembre); DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; foreach (DataRow rowPlat in tablePlats.Rows) { Plat plat = platService.Retrieve(new RetrievePlatArgs { IdPlat = ((int)rowPlat["idPlat"]) }); plat.EstTricherie = ((bool)rowPlat["estTricherie"]); resultat.Add(plat); } } catch (Exception) { throw; } return(resultat); }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des Préférences sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les préférences.</returns> public IList<Preference> RetrieveAll() { IList<Preference> resultat = new List<Preference>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Preferences"; DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; foreach (DataRow preference in table.Rows) { resultat.Add(ConstruirePreference(preference)); } } catch (MySqlException) { throw; } return resultat; }
/// <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'insérer un membre dans la base de données. /// </summary> /// <param name="membre">L'objet Membre a insérer.</param> public void Insert(Membre membre) { try { //Si stringConnexion est null ou vide, constructeur vide, sinon on utilise le stringConnexion spécifié. using (MySqlConnexion connexion = (String.IsNullOrWhiteSpace(stringConnexion)) ? new MySqlConnexion() : new MySqlConnexion(stringConnexion)) { string requete = string.Format("INSERT INTO Membres (nom ,prenom, taille, masse, dateNaissance, nomUtilisateur, motPasse, idLangue) VALUES ('{0}', '{1}', {2}, {3}, '{4}', '{5}', '{6}', (SELECT idLangue FROM Langues WHERE IETF = '{7}'))", membre.Nom, membre.Prenom, membre.Taille, membre.Masse, membre.DateNaissance.ToString("yyyy-MM-dd"), membre.NomUtilisateur, membre.MotPasse, membre.LangueMembre.IETF); connexion.Query(requete); int idMembre = (int)Retrieve(new RetrieveMembreArgs { NomUtilisateur = membre.NomUtilisateur }).IdMembre; // Ajout des restrictions alimentaires du membre. foreach (RestrictionAlimentaire restriction in membre.ListeRestrictions) { requete = string.Format("INSERT INTO RestrictionsAlimentairesMembres (idRestrictionAlimentaire, idMembre) VALUES ({0}, {1})", restriction.IdRestrictionAlimentaire, idMembre); connexion.Query(requete); } // Ajout des objectifs du membre. foreach (Objectif objectif in membre.ListeObjectifs) { requete = string.Format("INSERT INTO ObjectifsMembres (idObjectif, idMembre) VALUES ({0}, {1})", objectif.IdObjectif, idMembre); connexion.Query(requete); } // Ajout des préférences du membre. foreach (Preference preference in membre.ListePreferences) { requete = string.Format("INSERT INTO PreferencesMembres (idPreference, idMembre) VALUES ({0}, {1})", preference.IdPreference, idMembre); connexion.Query(requete); } } } catch (MySqlException) { throw; } }
/// <summary> /// Méthode permettant d'obtenir un ensemble de menus sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver les menus.</param> /// <returns>Une liste contenant les menus.</returns> public IList <Menu> RetrieveSome(RetrieveMenuArgs args) { IList <Menu> resultat = new List <Menu>(); try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Menus WHERE idMembre = {0}", args.IdMembre); DataSet dataSetMenus = connexion.Query(requete); DataTable tableMenus = dataSetMenus.Tables[0]; foreach (DataRow rowMenu in tableMenus.Rows) { Menu menu = ConstruireMenu(rowMenu); // 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"] })); } resultat.Add(menu); } } catch (MySqlException) { throw; } return(resultat); }
/// <summary> /// Méthode qui insère dans la base de données un Don /// </summary> /// <param name="don">Don à insérer</param> public void Insert(Don don) { try { connexion = new MySqlConnexion(); string requete = string.Format("INSERT INTO Dons (idModePaiement, nom, montant, noTransaction) VALUES ( (SELECT idModePaiement FROM ModesPaiement WHERE nom = '{0}'), '{1}', {2}, '{3}')", don.ModePaiementTransaction, don.NomAuteur, don.Montant, don.NoTransaction); connexion.Query(requete); } catch (MySqlException) { throw; } }
/// <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; } }
public void Insert(Transaction don) { try { connexion = new MySqlConnexion(); string requete = string.Format("INSERT INTO Dons (idModePaiement, nom, montant, noTransaction) VALUES ( (SELECT idModePaiement FROM ModesPaiement WHERE nom = '{0}'), '{1}', {2}, '{3}')", don.ModePaiementTransaction, don.NomAuteur, don.Montant, don.NoTransaction); 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 d'obtenir l'ensemble des aliments sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les aliments.</returns> public IList <Aliment> RetrieveAll() { IList <Aliment> resultat = new List <Aliment>(); string requete = "SELECT * FROM Aliments a INNER JOIN CategoriesAlimentaires ca ON ca.idCategorieAlimentaire = a.idCategorieAlimentaire INNER JOIN UnitesMesure um ON um.idUniteMesure = a.idUniteMesure ORDER BY a.nom asc"; try { using (MySqlConnexion connexion = new MySqlConnexion()) using (DataSet dataSetAliments = connexion.Query(requete)) using (DataTable tableAliments = dataSetAliments.Tables[0]) { foreach (DataRow rowAliment in tableAliments.Rows) { requete = string.Format("SELECT quantite, valeurNutritionnelle FROM AlimentsValeursNutritionnelles avn INNER JOIN ValeursNutritionnelles vn ON avn.idValeurNutritionnelle = vn.idValeurNutritionnelle WHERE idAliment = {0}", (int)rowAliment["idAliment"]); using (DataSet dataSetAlimentsValeursNut = connexion.Query(requete)) using (DataTable tableAlimentsValeursNut = dataSetAlimentsValeursNut.Tables[0]) { Dictionary <string, double> valeurNut = new Dictionary <string, double>(); foreach (DataRow rowAlimentValeurNut in tableAlimentsValeursNut.Rows) { valeurNut.Add((string)rowAlimentValeurNut["valeurNutritionnelle"], (double)rowAlimentValeurNut["quantite"]); } resultat.Add(ConstruireAliment(rowAliment, valeurNut)); } } } } catch (Exception) { throw; } return(resultat); }
public void Insert(Membre membre, Transaction transaction) { Insert(transaction); try { connexion = new MySqlConnexion(); string requete = string.Format("INSERT INTO DonsMembres (idMembre, idDon) VALUES ( (SELECT idMembre FROM Membres WHERE nomUtilisateur = '{0}'), (SELECT idDon FROM Dons WHERE noTransaction = '{1}')) ", membre.NomUtilisateur, transaction.NoTransaction); connexion.Query(requete); } catch (MySqlException) { throw; } }
/// <summary> /// Méthode permettant d'associer un don à un membre /// </summary> /// <param name="membre">Membre envoyant le don</param> /// <param name="transaction">Don à insérer dans la base de données</param> public void Insert(Membre membre, Don transaction) { //Appel la méthode qui ne fait qu'insérer le Don dans la bd. Insert(transaction); //Puis on exécute le code qui rajoutera les données nécessaire dans la table de correspondance DonsMembres pour associé le don au membre. try { connexion = new MySqlConnexion(); string requete = string.Format("INSERT INTO DonsMembres (idMembre, idDon) VALUES ( (SELECT idMembre FROM Membres WHERE nomUtilisateur = '{0}'), (SELECT idDon FROM Dons WHERE noTransaction = '{1}')) ", membre.NomUtilisateur, transaction.NoTransaction); connexion.Query(requete); } catch (MySqlException) { throw; } }
/// <summary> /// Méthode permettant de mettre à jour le suivi des plats d'un membre. /// </summary> /// <param name="listePlats">La liste des plats.</param> /// <param name="membre">Le membre correspondant.</param> public void Update(IList <Plat> listePlats, Membre membre) { try { connexion = new MySqlConnexion(); string requeteEffacerSuivi = string.Format("DELETE FROM SuiviPlats WHERE idMembre = {0}", membre.IdMembre); connexion.Query(requeteEffacerSuivi); Insert(listePlats, membre); } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'insérer le suivi des plats d'un membre. /// </summary> /// <param name="listePlats">La liste des plats.</param> /// <param name="membre">Le membre correspondant.</param> public void Insert(IList <Plat> listePlats, Membre membre) { try { connexion = new MySqlConnexion(); foreach (Plat plat in listePlats) { string requete = string.Format("INSERT INTO SuiviPlats (idMembre, idPlat, estTricherie) VALUES ({0}, {1}, {2})", membre.IdMembre, plat.IdPlat, plat.EstTricherie); connexion.Query(requete); } } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'insérer le suivi des plats d'un membre. /// </summary> /// <param name="listePlats">La liste des plats.</param> /// <param name="membre">Le membre correspondant.</param> public void Insert(IList<Plat> listePlats, Membre membre) { try { connexion = new MySqlConnexion(); foreach (Plat plat in listePlats) { string requete = string.Format("INSERT INTO SuiviPlats (idMembre, idPlat, estTricherie) VALUES ({0}, {1}, {2})", membre.IdMembre, plat.IdPlat, plat.EstTricherie); connexion.Query(requete); } } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant de mettre à jour un membre dans la base de données. /// </summary> /// <param name="membre">L'objet Membre à mettre à jour.</param> public void Update(Membre membre) { try { //Si stringConnexion est null ou vide, constructeur vide, sinon on utilise le stringConnexion spécifié. using (MySqlConnexion connexion = (String.IsNullOrWhiteSpace(stringConnexion)) ? new MySqlConnexion() : new MySqlConnexion(stringConnexion)) { string requete = string.Format("UPDATE Membres SET nom = '{0}' ,prenom = '{1}', taille = {2}, masse = {3}, dateNaissance = '{4}', nomUtilisateur = '{5}', motPasse = '{6}', estAdmin = {7}, estBanni = {8}, idLangue = (SELECT idLangue FROM Langues WHERE IETF = '{9}'), derniereMaj = CURRENT_TIMESTAMP WHERE idMembre = {10}", membre.Nom, membre.Prenom, membre.Taille, membre.Masse, membre.DateNaissance.ToString("yyyy-MM-dd"), membre.NomUtilisateur, membre.MotPasse, membre.EstAdministrateur, membre.EstBanni, membre.LangueMembre.IETF, membre.IdMembre); connexion.Query(requete); string requeteEffacerRestrictions = string.Format("DELETE FROM RestrictionsAlimentairesMembres WHERE idMembre = {0}", membre.IdMembre); string requeteEffacerObjectifs = string.Format("DELETE FROM ObjectifsMembres WHERE idMembre = {0}", membre.IdMembre); string requeteEffacerPreferences = string.Format("DELETE FROM PreferencesMembres WHERE idMembre = {0}", membre.IdMembre); connexion.Query(requeteEffacerRestrictions); connexion.Query(requeteEffacerObjectifs); connexion.Query(requeteEffacerPreferences); // Ajout des restrictions alimentaires du membre. foreach (RestrictionAlimentaire restriction in membre.ListeRestrictions) { requete = string.Format("INSERT INTO RestrictionsAlimentairesMembres (idRestrictionAlimentaire, idMembre) VALUES ({0}, {1})", restriction.IdRestrictionAlimentaire, membre.IdMembre); connexion.Query(requete); } // Ajout des objectifs du membre. foreach (Objectif objectif in membre.ListeObjectifs) { requete = string.Format("INSERT INTO ObjectifsMembres (idObjectif, idMembre) VALUES ({0}, {1})", objectif.IdObjectif, membre.IdMembre); connexion.Query(requete); } // Ajout des préférences du membre. foreach (Preference preference in membre.ListePreferences) { requete = string.Format("INSERT INTO PreferencesMembres (idPreference, idMembre) VALUES ({0}, {1})", preference.IdPreference, membre.IdMembre); connexion.Query(requete); } } } catch (MySqlException) { throw; } }
public DateTime LastTimeDon() { DateTime last = DateTime.MinValue; try { connexion = new MySqlConnexion(); string requete = " SELECT * FROM LastTimeDon"; DataSet dataSetDon = connexion.Query(requete); DataTable tableDon = dataSetDon.Tables[0]; if (tableDon.Rows.Count != 0) last = (DateTime)tableDon.Rows[0]["dateDon"]; } catch (MySqlException) { throw; } return last; }
/// <summary> /// Méthode qui récupère la VersionLogiciel la plus récente de la base de données à partir d'une VIEW /// </summary> /// <returns></returns> public VersionLogiciel RetrieveLatest() { try { VersionLogiciel latestVersion; connexion = new MySqlConnexion(); string requete = "SELECT * FROM CurrentVersion"; DataSet dataSetVersionsLogiciel = connexion.Query(requete); DataTable tableVersionsLogiciel = dataSetVersionsLogiciel.Tables[0]; latestVersion = ConstruireVersionLogiciel(tableVersionsLogiciel.Rows[0]); return(latestVersion); } catch (Exception e) { Console.WriteLine(e.Message); return(new VersionLogiciel("0.0.0.0", "Empty", "Empty", DateTime.MinValue)); } }
public VersionLogiciel RetrieveLatest() { try { VersionLogiciel latestVersion; connexion = new MySqlConnexion(); string requete = "SELECT * FROM CurrentVersion"; DataSet dataSetVersionsLogiciel = connexion.Query(requete); DataTable tableVersionsLogiciel = dataSetVersionsLogiciel.Tables[0]; latestVersion = ConstruireVersionLogiciel(tableVersionsLogiciel.Rows[0]); return latestVersion; } catch (Exception e) { Console.WriteLine(e.Message); return new VersionLogiciel("0.0.0.0", "Empty", "Empty", DateTime.MinValue); } }
/// <summary> /// Méthode permettant d'obtenir les aliments pour un plat spécifique. /// </summary> /// <param name="args">Les arguments permettant de retrouver les aliments du plat.</param> /// <returns>Une liste contenant les aliments.</returns> public IList <Aliment> RetrieveAlimentsPlat(RetrievePlatArgs args) { List <Aliment> listeIngredients = new List <Aliment>(); string requete = string.Format("SELECT * FROM PlatsAliments WHERE idPlat = {0}", args.IdPlat); DataSet dataSetPlatsAliments = connexion.Query(requete); DataTable tablePlatsAliments = dataSetPlatsAliments.Tables[0]; foreach (DataRow rowPlatsAliments in tablePlatsAliments.Rows) { Aliment alimentTmp = alimentService.Retrieve(new RetrieveAlimentArgs { IdAliment = (int)rowPlatsAliments["idAliment"] }); alimentTmp.Quantite = (double)rowPlatsAliments["quantite"] * alimentTmp.Mesure; listeIngredients.Add(alimentTmp); } return(listeIngredients); }
/// <summary> /// Méthode permettant d'obtenir un objectif sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver l'objectif.</param> /// <returns>Un objet Objectif.</returns> public Objectif Retrieve(RetrieveObjectifArgs args) { Objectif objectif; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Objectifs WHERE idObjectif = {0}", args.IdObjectif); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; objectif = ConstruireObjectif(table.Rows[0]); } catch (Exception) { throw; } return(objectif); }
/// <summary> /// Méthode permettant d'obtenir une restriction alimentaire de la base de données. /// </summary> /// <param name="args">Les arguments permettant de récupérer la restriction alimentaire.</param> /// <returns>Un objet RestrictionAlimentaire.</returns> public RestrictionAlimentaire Retrieve(RetrieveRestrictionAlimentaireArgs args) { RestrictionAlimentaire restrictionAlimentaire; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM RestrictionsAlimentaires WHERE idRestrictionAlimentaire = {0}", args.IdRestrictionAlimentaire); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; restrictionAlimentaire = ConstruireRestrictionAlimentaire(table.Rows[0]); } catch (Exception) { throw; } return(restrictionAlimentaire); }
/// <summary> /// Méthode appelant une VIEW pour obtenir le DateTime du don le plus récents dans la base de données /// </summary> /// <returns></returns> public DateTime LastTimeDon() { DateTime last = DateTime.MinValue; try { connexion = new MySqlConnexion(); string requete = " SELECT * FROM LastTimeDon"; DataSet dataSetDon = connexion.Query(requete); DataTable tableDon = dataSetDon.Tables[0]; if (!tableDon.Rows[0].IsNull("derniereMaj")) { last = (DateTime)tableDon.Rows[0]["derniereMaj"]; } } catch (MySqlException) { throw; } return(last); }
/// <summary> /// Insertion d'une valeur nutritionnelle dans la table de correspondance "AlimentsValeursNutritionnelles". /// </summary> /// <param name="idValeur">l'id de la valeur nutritionnelle.</param> /// <param name="idAliment">L'id de l'aliment correspondant.</param> /// <param name="valeur">La valeur nutritionnelle.</param> private void Inserer_Valeur_Nutritionnelle(int idValeur, int idAliment, double valeur) { try { using (MySqlConnexion connexion = new MySqlConnexion()) { string uneValeur = valeur.ToString(); if (uneValeur.Contains(",")) { uneValeur = uneValeur.Replace(",", "."); } string requeteInsert = string.Format("INSERT INTO AlimentsValeursNutritionnelles (idAliment ,idValeurNutritionnelle, quantite) VALUES ({0}, {1}, {2})", idAliment, idValeur, uneValeur); connexion.Query(requeteInsert); } } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'obtenir une préférence sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver la préférence.</param> /// <returns>Un objet Preference.</returns> public Preference Retrieve(RetrievePreferenceArgs args) { Preference preference; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Preferences WHERE idPreference = {0}", args.IdPreference); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; preference = ConstruirePreference(table.Rows[0]); } catch (Exception) { throw; } return(preference); }
public IList<Transaction> RetrieveAll() { IList<Transaction> resultat = new List<Transaction>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM AllDons"; DataSet dataSetDon = connexion.Query(requete); DataTable tableDon = dataSetDon.Tables[0]; foreach (DataRow don in tableDon.Rows) { resultat.Add(ConstruireDon(don)); } } catch (MySqlException) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir la date de la dernière modification d'un plat dans la base de données. /// </summary> /// <returns>Un objet DateTime.</returns> public DateTime LastUpdatedTime() { DateTime time; try { using (MySqlConnexion connexion = new MySqlConnexion()) { string requete = "SELECT * FROM LastModifiedPlat"; using (DataSet dataSetLastUpdatedTime = connexion.Query(requete)) using (DataTable tableLastUpdatedTime = dataSetLastUpdatedTime.Tables[0]) { time = (DateTime)tableLastUpdatedTime.Rows[0]["derniereMaj"]; } } } catch (MySqlException) { throw; } return(time); }
/// <summary> /// Méthode permettant d'obtenir un objectif sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver l'objectif.</param> /// <returns>Un objet Objectif.</returns> public Objectif Retrieve(RetrieveObjectifArgs args) { Objectif objectif; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Objectifs WHERE idObjectif = {0}", args.IdObjectif); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; objectif = ConstruireObjectif(table.Rows[0]); } catch (Exception) { throw; } return objectif; }
/// <summary> /// Méthode qui récupère tout les dons contenu dans la base de données /// </summary> /// <returns>IList de tout les dons</returns> public IList <Don> RetrieveAll() { IList <Don> resultat = new List <Don>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM AllDons"; DataSet dataSetDon = connexion.Query(requete); DataTable tableDon = dataSetDon.Tables[0]; foreach (DataRow don in tableDon.Rows) { resultat.Add(ConstruireDon(don)); } } catch (MySqlException) { throw; } return(resultat); }
/// <summary> /// Méthode permettant d'obtenir une préférence sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver la préférence.</param> /// <returns>Un objet Preference.</returns> public Preference Retrieve(RetrievePreferenceArgs args) { Preference preference; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Preferences WHERE idPreference = {0}", args.IdPreference); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; preference = ConstruirePreference(table.Rows[0]); } catch (Exception) { throw; } return preference; }
/// <summary> /// Méthode permettant d'obtenir une restriction alimentaire de la base de données. /// </summary> /// <param name="args">Les arguments permettant de récupérer la restriction alimentaire.</param> /// <returns>Un objet RestrictionAlimentaire.</returns> public RestrictionAlimentaire Retrieve(RetrieveRestrictionAlimentaireArgs args) { RestrictionAlimentaire restrictionAlimentaire; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM RestrictionsAlimentaires WHERE idRestrictionAlimentaire = {0}", args.IdRestrictionAlimentaire); DataSet dataSet = connexion.Query(requete); DataTable table = dataSet.Tables[0]; restrictionAlimentaire = ConstruireRestrictionAlimentaire(table.Rows[0]); } catch (Exception) { throw; } return restrictionAlimentaire; }
/// <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 d'obtenir l'ensemble des aliments sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les aliments.</returns> public IList<Aliment> RetrieveAll() { IList<Aliment> resultat = new List<Aliment>(); string requete = "SELECT * FROM Aliments a INNER JOIN CategoriesAlimentaires ca ON ca.idCategorieAlimentaire = a.idCategorieAlimentaire INNER JOIN UnitesMesure um ON um.idUniteMesure = a.idUniteMesure ORDER BY a.nom asc"; try { using (MySqlConnexion connexion = new MySqlConnexion()) using (DataSet dataSetAliments = connexion.Query(requete)) using (DataTable tableAliments = dataSetAliments.Tables[0]) { foreach (DataRow rowAliment in tableAliments.Rows) { requete = string.Format("SELECT quantite, valeurNutritionnelle FROM AlimentsValeursNutritionnelles avn INNER JOIN ValeursNutritionnelles vn ON avn.idValeurNutritionnelle = vn.idValeurNutritionnelle WHERE idAliment = {0}", (int)rowAliment["idAliment"]); using (DataSet dataSetAlimentsValeursNut = connexion.Query(requete)) using (DataTable tableAlimentsValeursNut = dataSetAlimentsValeursNut.Tables[0]) { Dictionary<string, double> valeurNut = new Dictionary<string, double>(); foreach (DataRow rowAlimentValeurNut in tableAlimentsValeursNut.Rows) { valeurNut.Add((string)rowAlimentValeurNut["valeurNutritionnelle"], (double)rowAlimentValeurNut["quantite"]); } resultat.Add(ConstruireAliment(rowAliment, valeurNut)); } } } } catch (Exception) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir un ensemble de menus sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver les menus.</param> /// <returns>Une liste contenant les menus.</returns> public IList<Menu> RetrieveSome(RetrieveMenuArgs args) { IList<Menu> resultat = new List<Menu>(); try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Menus WHERE idMembre = {0}", args.IdMembre); DataSet dataSetMenus = connexion.Query(requete); DataTable tableMenus = dataSetMenus.Tables[0]; foreach (DataRow rowMenu in tableMenus.Rows) { Menu menu = ConstruireMenu(rowMenu); // 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"]})); } resultat.Add(menu); } } catch (MySqlException) { throw; } return resultat; }
/// <summary> /// Méthode permettant de mettre à jour un plat dans la base de données. /// </summary> /// <param name="plat">Le plat à mettre à jour.</param> public void UpdateVote(Plat plat) { try { connexion = new MySqlConnexion(); // Obtenir le idTypePlat. string requete = string.Format("SELECT idTypePlat FROM TypesPlats WHERE typePlat = '{0}'", plat.TypePlat); DataSet dataSetType = connexion.Query(requete); DataTable tableType = dataSetType.Tables[0]; int idTypePlat = (int)(tableType.Rows[0]["idTypePlat"]); string note = plat.Note.ToString(); if (note.Contains(",")) { note = note.Replace(",", "."); } requete = string.Format("UPDATE Plats SET idTypePlat = {0}, nom = '{1}', imageUrl = '{2}', note = {3}, nbVotes = {4} WHERE idPlat = {5}", idTypePlat, plat.Nom.Replace("'", "''"), plat.ImageUrl, note, plat.NbVotes, plat.IdPlat); connexion.Query(requete); } catch (Exception) { throw; } }
/// <summary> /// Méthode de mise à jour d'un plat dans la base de données. /// </summary> /// <param name="unAliment"></param> public void Update(Plat unPlat) { try { connexion = new MySqlConnexion(); string requeteTypePlat = string.Format("SELECT * FROM TypesPlats WHERE typePlat = '{0}'", unPlat.TypePlat); DataSet dataSetTypes = connexion.Query(requeteTypePlat); DataTable tableTypes = dataSetTypes.Tables[0]; int idType = 0; foreach (DataRow rowType in tableTypes.Rows) { idType = (int)rowType["idTypePlat"]; } string note = unPlat.Note.ToString(); if (note.Contains(",")) { note = note.Replace(",", "."); } string requeteUpdate = string.Format("UPDATE Plats SET idTypePlat = {0}, nom = '{1}', imageUrl = '{2}', note = '{3}', nbVotes = {4}, description = '{5}' WHERE idPlat = {6}", idType, unPlat.Nom.Replace("'", "''"), unPlat.ImageUrl, note, unPlat.NbVotes, unPlat.Description, unPlat.IdPlat); connexion.Query(requeteUpdate); int idPlat = (int)unPlat.IdPlat; string requeteDelete = string.Format("DELETE FROM PlatsAliments WHERE idPlat = {0}", idPlat); connexion.Query(requeteDelete); for (int i = 0; i < unPlat.ListeIngredients.Count; i++) { string requeteInsertAlimentPlat = string.Format("INSERT INTO PlatsAliments (idPlat, idAliment, quantite) VALUES ({0}, {1}, {2})", idPlat, unPlat.ListeIngredients[i].IdAliment, unPlat.ListeIngredients[i].Quantite); connexion.Query(requeteInsertAlimentPlat); } } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'obtenir un ensemble de plats sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver les plats.</param> /// <returns>Une liste contenant les plats.</returns> public IList<Plat> RetrieveSome(RetrievePlatArgs args) { List<Plat> resultat = new List<Plat>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Plats p INNER JOIN TypesPlats tp ON tp.idTypePlat = p.idTypePlat INNER JOIN Membres m ON m.idMembre = p.idMembre"; if (args.Categorie != null && args.Categorie != string.Empty) { requete += string.Format(" WHERE typePlat = '{0}'", args.Categorie); } if (args.NbResultats != null) { if (args.PlusPopulaires == true) { requete += " ORDER BY note DESC "; } else if (args.PlusPopulaires == false) { requete += " ORDER BY note ASC "; } else if (args.PlusPopulaires == null) { if (args.Depart != null && args.Depart != string.Empty) { requete += " ORDER BY idPlat "; if (args.Depart == "Fin") { requete += "DESC"; } else { requete += "ASC"; } } } requete += string.Format(" LIMIT {0} ", args.NbResultats); } DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; foreach (DataRow rowPlat in tablePlats.Rows) { Plat plat = ConstruirePlat(rowPlat); plat.ListeIngredients = RetrieveAlimentsPlat(new RetrievePlatArgs { IdPlat = plat.IdPlat }); resultat.Add(plat); } } catch (Exception) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir l'ensemble des plats sauvegardé dans la base de données. /// </summary> /// <returns>Une liste contenant les plats.</returns> public IList<Plat> RetrieveAll() { List<Plat> resultat = new List<Plat>(); try { connexion = new MySqlConnexion(); string requete = "SELECT * FROM Plats p INNER JOIN TypesPlats tp ON tp.idTypePlat = p.idTypePlat INNER JOIN Membres m ON m.idMembre = p.idMembre"; DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; foreach (DataRow rowPlat in tablePlats.Rows) { Plat plat = ConstruirePlat(rowPlat); plat.ListeIngredients = RetrieveAlimentsPlat(new RetrievePlatArgs { IdPlat = plat.IdPlat }); resultat.Add(plat); } } catch (Exception) { throw; } return resultat; }
/// <summary> /// Méthode permettant d'obtenir un plat sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver le plat.</param> /// <returns>Un objet Plat.</returns> public Plat Retrieve(RetrievePlatArgs args) { Plat plat; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Plats p INNER JOIN TypesPlats tp ON tp.idTypePlat = p.idTypePlat INNER JOIN Membres m ON m.idMembre = p.idMembre WHERE idPlat = '{0}'", args.IdPlat); DataSet dataSetPlats = connexion.Query(requete); DataTable tablePlats = dataSetPlats.Tables[0]; plat = ConstruirePlat(tablePlats.Rows[0]); plat.ListeIngredients = RetrieveAlimentsPlat(new RetrievePlatArgs { IdPlat = plat.IdPlat }); } catch (Exception) { throw; } return plat; }
/// <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; } }
/// <summary> /// Méthode permettant d'obtenir un aliment sauvegardé dans la base de données. /// </summary> /// <param name="args">Les arguments permettant de retrouver l'aliment.</param> /// <returns>Un objet Aliment.</returns> public Aliment Retrieve(RetrieveAlimentArgs args) { Aliment aliment; try { connexion = new MySqlConnexion(); string requete = string.Format("SELECT * FROM Aliments a INNER JOIN CategoriesAlimentaires ca ON ca.idCategorieAlimentaire = a.idCategorieAlimentaire INNER JOIN UnitesMesure um ON um.idUniteMesure = a.idUniteMesure WHERE idAliment = {0}", args.IdAliment); DataSet dataSetAliments = connexion.Query(requete); DataTable tableAliments = dataSetAliments.Tables[0]; DataRow rowAliment = tableAliments.Rows[0]; requete = string.Format("SELECT quantite, valeurNutritionnelle FROM AlimentsValeursNutritionnelles avn INNER JOIN ValeursNutritionnelles vn ON avn.idValeurNutritionnelle = vn.idValeurNutritionnelle WHERE idAliment = {0}", (int)rowAliment["idAliment"]); DataSet dataSetAlimentsValeursNut = connexion.Query(requete); DataTable tableAlimentsValeursNut = dataSetAlimentsValeursNut.Tables[0]; Dictionary<string, double> valeurNut = new Dictionary<string, double>(); foreach (DataRow rowAlimentValeurNut in tableAlimentsValeursNut.Rows) { valeurNut.Add((string)rowAlimentValeurNut["valeurNutritionnelle"], (double)rowAlimentValeurNut["quantite"]); } aliment = ConstruireAliment(rowAliment, valeurNut); } catch (Exception) { throw; } return aliment; }
/// <summary> /// Insertion d'une valeur nutritionnelle dans la table de correspondance "AlimentsValeursNutritionnelles". /// </summary> /// <param name="idValeur"></param> /// <param name="idAliment"></param> /// <param name="valeur"></param> private void Inserer_Valeur_Nutritionnelle(int idValeur, int idAliment, double valeur) { try { connexion = new MySqlConnexion(); string uneValeur = valeur.ToString(); if (uneValeur.Contains(",")) { uneValeur = uneValeur.Replace(",", "."); } string requeteInsert = string.Format("INSERT INTO AlimentsValeursNutritionnelles (idAliment ,idValeurNutritionnelle, quantite) VALUES ({0}, {1}, {2})", idAliment, idValeur, uneValeur); connexion.Query(requeteInsert); } catch (Exception) { throw; } }
/// <summary> /// Méthode d'insertion d'un nouvel aliment dans la base de données. /// </summary> /// <param name="unAliment"></param> public void Insert(Aliment unAliment) { try { connexion = new MySqlConnexion(); string requeteCategoriesAlim = string.Format("SELECT * FROM CategoriesAlimentaires WHERE categorieAlimentaire = '{0}'", unAliment.Categorie); DataSet dataSetCategories = connexion.Query(requeteCategoriesAlim); DataTable tableCategories = dataSetCategories.Tables[0]; int idCategorie = 0; foreach (DataRow rowCategories in tableCategories.Rows) { idCategorie = (int)rowCategories["idCategorieAlimentaire"]; } string requeteUnitesMesure = string.Format("SELECT * FROM UnitesMesure WHERE uniteMesure = '{0}'", unAliment.UniteMesure); DataSet dataSetUnites = connexion.Query(requeteUnitesMesure); DataTable tableUnites = dataSetUnites.Tables[0]; int idUnite = 0; foreach (DataRow rowUnites in tableUnites.Rows) { idUnite = (int)rowUnites["idUniteMesure"]; } string requeteInsert = string.Format("INSERT INTO Aliments (idUniteMesure ,idCategorieAlimentaire, nom, mesure, imageURL) VALUES ({0}, {1}, '{2}', {3}, '{4}')", idUnite, idCategorie, unAliment.Nom, unAliment.Mesure, unAliment.ImageURL); connexion.Query(requeteInsert); string requeteAlim = string.Format("SELECT * FROM Aliments WHERE nom = '{0}'", unAliment.Nom); DataSet dataSetAlim = connexion.Query(requeteAlim); DataTable tableAlim = dataSetAlim.Tables[0]; int idAliment = 0; foreach (DataRow rowAlim in tableAlim.Rows) { idAliment = (int)rowAlim["idAliment"]; } int idEnergie = Associer_Valeur_Nutritionnelle("Calories"); int idProteine = Associer_Valeur_Nutritionnelle("Protéines"); int idGlucide = Associer_Valeur_Nutritionnelle("Glucides"); int idFibre = Associer_Valeur_Nutritionnelle("Fibres"); int idLipide = Associer_Valeur_Nutritionnelle("Lipides"); int idSodium = Associer_Valeur_Nutritionnelle("Sodium"); int idCholesterol = Associer_Valeur_Nutritionnelle("Cholestérol"); Inserer_Valeur_Nutritionnelle(idEnergie, idAliment, unAliment.Energie); Inserer_Valeur_Nutritionnelle(idProteine, idAliment, unAliment.Proteine); Inserer_Valeur_Nutritionnelle(idGlucide, idAliment, unAliment.Glucide); Inserer_Valeur_Nutritionnelle(idFibre, idAliment, unAliment.Fibre); Inserer_Valeur_Nutritionnelle(idLipide, idAliment, unAliment.Lipide); Inserer_Valeur_Nutritionnelle(idSodium, idAliment, unAliment.Sodium); Inserer_Valeur_Nutritionnelle(idCholesterol, idAliment, unAliment.Cholesterol); } catch (Exception) { throw; } }
/// <summary> /// Méthode permettant d'obtenir l'id pour une valeur nutritionnelle désirée. /// </summary> /// <param name="uneValeur"></param> /// <returns></returns> private int Associer_Valeur_Nutritionnelle(String uneValeur) { try { connexion = new MySqlConnexion(); string requeteValeur = string.Format("SELECT * FROM ValeursNutritionnelles WHERE valeurNutritionnelle = '{0}'", uneValeur); DataSet dataSetValeur = connexion.Query(requeteValeur); DataTable tableValeur = dataSetValeur.Tables[0]; int idValeur = 0; foreach (DataRow rowValeur in tableValeur.Rows) { idValeur = (int)rowValeur["idValeurNutritionnelle"]; } return idValeur; } catch (Exception) { throw; } }
/// <summary> /// Méthode de mise à jour d'un aliment dans la base de données. /// </summary> /// <param name="unAliment"></param> public void Update(Aliment unAliment) { try { connexion = new MySqlConnexion(); string requeteCategoriesAlim = string.Format("SELECT * FROM CategoriesAlimentaires WHERE categorieAlimentaire = '{0}'", unAliment.Categorie); DataSet dataSetCategories = connexion.Query(requeteCategoriesAlim); DataTable tableCategories = dataSetCategories.Tables[0]; int idCategorie = 0; foreach (DataRow rowCategories in tableCategories.Rows) { idCategorie = (int)rowCategories["idCategorieAlimentaire"]; } string requeteUnitesMesure = string.Format("SELECT * FROM UnitesMesure WHERE uniteMesure = '{0}'", unAliment.UniteMesure); DataSet dataSetUnites = connexion.Query(requeteUnitesMesure); DataTable tableUnites = dataSetUnites.Tables[0]; int idUnite = 0; foreach (DataRow rowUnites in tableUnites.Rows) { idUnite = (int)rowUnites["idUniteMesure"]; } string requeteUpdate = string.Format("UPDATE Aliments SET idUniteMesure = {0}, idCategorieAlimentaire = {1}, nom = '{2}', mesure = {3}, imageURL = '{4}' WHERE idAliment = {5}", idUnite, idCategorie, unAliment.Nom, unAliment.Mesure, unAliment.ImageURL, unAliment.IdAliment); connexion.Query(requeteUpdate); int idAliment = (int)unAliment.IdAliment; int idEnergie = Associer_Valeur_Nutritionnelle("Calories"); int idProteine = Associer_Valeur_Nutritionnelle("Protéines"); int idGlucide = Associer_Valeur_Nutritionnelle("Glucides"); int idFibre = Associer_Valeur_Nutritionnelle("Fibres"); int idLipide = Associer_Valeur_Nutritionnelle("Lipides"); int idSodium = Associer_Valeur_Nutritionnelle("Sodium"); int idCholesterol = Associer_Valeur_Nutritionnelle("Cholestérol"); string requeteDelete = string.Format("DELETE FROM AlimentsValeursNutritionnelles WHERE idAliment = {0}", idAliment); connexion.Query(requeteDelete); Inserer_Valeur_Nutritionnelle(idEnergie, idAliment, unAliment.Energie); Inserer_Valeur_Nutritionnelle(idProteine, idAliment, unAliment.Proteine); Inserer_Valeur_Nutritionnelle(idGlucide, idAliment, unAliment.Glucide); Inserer_Valeur_Nutritionnelle(idFibre, idAliment, unAliment.Fibre); Inserer_Valeur_Nutritionnelle(idLipide, idAliment, unAliment.Lipide); Inserer_Valeur_Nutritionnelle(idSodium, idAliment, unAliment.Sodium); Inserer_Valeur_Nutritionnelle(idCholesterol, idAliment, unAliment.Cholesterol); } catch (Exception) { throw; } }