Esempio n. 1
0
        /// <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);
        }