// Accesseur en lecture, renvoi une instance public static RepresentationsDAO GetRepresentationDAO() { if (uneRepresentationDAO == null) { uneRepresentationDAO = new RepresentationsDAO(); } return(uneRepresentationDAO); }
// Renvoie la liste des réservations // Nécessite les représentations et pièces de théâtre // Besoin des tables spectator et toBook public static List <Spectator> GetSpectators() { // Définition des variables List <Spectator> lesReservations = new List <Spectator>(); Spectator uneReservation; int id = 0; string nom = ""; string prenom = ""; string email = ""; string telephone = ""; int nbPlaces = 0; Show laRepresentation = null; SqlConnection maConnexion; // Récupération de la liste des représentations List <Show> lesRepresentations = RepresentationsDAO.GetShows(); // Connexion à la DB maConnexion = ConnexionBD.GetConnexionBD().GetSqlConnexion(); // Initialisation de deux readers SqlDataReader readerSpectators = null; SqlDataReader readerToBook = null; // Initialisation et écriture d'une requête SQL pour récupérer tous les spectators SqlCommand cmdSpectators = new SqlCommand(); cmdSpectators.Connection = maConnexion; cmdSpectators.CommandText = "SELECT * FROM Spectator"; // Initialisation et écriture d'une requête SQL pour récupérer la table To Book SqlCommand cmdToBook = new SqlCommand(); cmdToBook.Connection = maConnexion; cmdToBook.CommandText = "SELECT * FROM To_book"; // Execution du reader spectators readerSpectators = cmdSpectators.ExecuteReader(); readerToBook = cmdToBook.ExecuteReader(); // Verification de la valeur du retour if (readerSpectators.HasRows) { // while reader while (readerSpectators.Read()) { // assignation des valeurs retournées par la requêtes aux variables concernées id = Convert.ToInt32(readerSpectators["spectator_id"].ToString()); nom = readerSpectators["spectator_lastname"].ToString(); prenom = readerSpectators["spectator_firstname"].ToString(); email = readerSpectators["spectator_email"].ToString(); telephone = readerSpectators["spectator_phone"].ToString(); // Déclanchement du reader sur la table To Book pour récupérer la liaison avec le show et le nbPlaces while (readerToBook.Read()) { int idSpect = Convert.ToInt32(readerToBook["toBook_spectator"].ToString()); // Si l'id du spectateur de to book est égale à celui de la requête précédente if (idSpect == id) { // on récupère l'id du show et le nb de places int idShow = Convert.ToInt32(readerToBook["toBook_show"].ToString()); nbPlaces = Convert.ToInt32(readerToBook["seatsBooked"].ToString()); bool trouve = false; int i = 0; // On trouve dans la liste des show celui correspondant à l'id while (trouve == false && i < lesRepresentations.Count) { if (lesRepresentations[i].Show_id == idShow) { // Si on l'a, on l'ajoute laRepresentation = lesRepresentations[i]; trouve = true; } else { i++; } } } } readerToBook.Close(); readerToBook = cmdToBook.ExecuteReader(); // Initialisation d'une nouvelle réservation et ajout dans la liste uneReservation = new Spectator(id, nom, prenom, email, telephone, laRepresentation, nbPlaces); lesReservations.Add(uneReservation); } } readerSpectators.Close(); readerToBook.Close(); // Fermeture de la connexion maConnexion.Close(); return(lesReservations); }