/// <summary> /// Méthode permettant d'obtenir l'ensemble des membres sauvegardés dans la base de données. /// </summary> /// <returns>Une liste contenant les membres.</returns> public IList <Membre> RetrieveAll() { IList <Membre> resultat = new List <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 = "SELECT * FROM Membres"; using (DataSet dataSetMembres = connexion.Query(requete)) using (DataTable tableMembres = dataSetMembres.Tables[0]) { // Construction de chaque objet Membre. foreach (DataRow rowMembre in tableMembres.Rows) { Membre membre = ConstruireMembre(rowMembre); membre.LangueMembre = LangueFromId((int)rowMembre["idLangue"]); // Ajout des restrictions alimentaires du membre. requete = string.Format("SELECT idRestrictionAlimentaire FROM RestrictionsAlimentairesMembres WHERE idMembre = {0}", membre.IdMembre); using (DataSet dataSetRestrictions = connexion.Query(requete)) using (DataTable tableRestrictions = dataSetRestrictions.Tables[0]) { foreach (DataRow rowRestriction in tableRestrictions.Rows) { membre.ListeRestrictions.Add(restrictionAlimentaireService.Retrieve(new RetrieveRestrictionAlimentaireArgs { IdRestrictionAlimentaire = (int)rowRestriction["idRestrictionAlimentaire"] })); } // Ajout des objectifs du membre. requete = string.Format("SELECT idObjectif FROM ObjectifsMembres WHERE idMembre = {0}", membre.IdMembre); using (DataSet dataSetObjectifs = connexion.Query(requete)) using (DataTable tableObjectifs = dataSetObjectifs.Tables[0]) { foreach (DataRow rowObjectif in tableObjectifs.Rows) { membre.ListeObjectifs.Add(objectifService.Retrieve(new RetrieveObjectifArgs { IdObjectif = (int)rowObjectif["idObjectif"] })); } // Ajout des préférences du membre. requete = string.Format("SELECT idPreference FROM PreferencesMembres WHERE idMembre = {0}", membre.IdMembre); using (DataSet dataSetPreferences = connexion.Query(requete)) using (DataTable tablePreferences = dataSetPreferences.Tables[0]) { foreach (DataRow rowPreference in tablePreferences.Rows) { membre.ListePreferences.Add(preferenceService.Retrieve(new RetrievePreferenceArgs { IdPreference = (int)rowPreference["idPreference"] })); } membre.ListeMenus = menuService.RetrieveSome(new RetrieveMenuArgs { IdMembre = (int)membre.IdMembre }); resultat.Add(membre); } } } } } } } catch (MySqlException) { throw; } return(resultat); }