Esempio n. 1
0
 // Accesseur en lecture, renvoi une instance
 public static PiecesTheatreDAO GetPiecesTheatreDAO()
 {
     if (unePieceTheatreDAO == null)
     {
         unePieceTheatreDAO = new PiecesTheatreDAO();
     }
     return(unePieceTheatreDAO);
 }
        // Renvoie la liste des représentations correspondant à la pièce de théatres ayant lieu durant une période passée en paramètres
        public static List <Show> GetFilterShows(int idTheaterPiece, DateTime dateDebutChoisie, DateTime dateFinChoisie)
        {
            //variables
            int          idShow;
            DateTime     uneDateHeure; //besoin de date et heure
            int          nbPlaces;
            int          idTaux;
            int          idPiece;
            TheaterPiece laPiece = null; //besoin de nomPiece, durée
            PriceRate    letaux  = null; //calcul du prix pour date, heure, semaine
            Show         uneRepresentation;
            // Récupération de la liste des pièces de théâtre
            List <TheaterPiece> lesPiecesDeTheatre = PiecesTheatreDAO.GetTheaterPieces();
            // Récupération de la liste des taux
            List <PriceRate> lesTaux = GetPriceRateWeeksDays();
            // Connexion à la BD
            SqlConnection maConnexion = ConnexionBD.GetConnexionBD().GetSqlConnexion();
            // Création d'une liste vide d'objets lesRepresentations
            List <Show> lesRepresentations = new List <Show>();

            SqlCommand cmd = new SqlCommand();

            cmd.Connection = maConnexion;
            //paramètres

            SqlParameter paramIdPiece = new SqlParameter("@idPiece", SqlDbType.Int);

            paramIdPiece.Value = idTheaterPiece;
            SqlParameter paramDateDeb = new SqlParameter("@dateDeb", SqlDbType.VarChar);
            string       date1;

            date1 = dateDebutChoisie.ToString("yyyy/MM/dd");
            paramDateDeb.Value = date1;
            SqlParameter paramDateFin = new SqlParameter("@dateFin", SqlDbType.VarChar);
            string       date2;

            date2 = dateFinChoisie.ToString("yyyy/MM/dd");
            paramDateFin.Value = date2;
            //requête
            cmd.CommandText = "SELECT show_id,show_dateTime, show_seats, show_priceRate, show_theaterPiece FROM Show, Theater_piece WHERE show_theaterPiece = theaterPiece_id AND theaterPiece_id = @idPiece AND CAST(show_dateTime as DATE) BETWEEN @dateDeb AND @dateFin";
            //ajout params
            cmd.Parameters.Add(paramIdPiece);
            cmd.Parameters.Add(paramDateDeb);
            cmd.Parameters.Add(paramDateFin);


            SqlDataReader monReader = cmd.ExecuteReader();

            // Remplissage de la liste
            while (monReader.Read())
            {
                idShow       = Int32.Parse(monReader["show_id"].ToString());
                uneDateHeure = (DateTime)monReader["show_dateTime"];
                nbPlaces     = Int32.Parse(monReader["show_seats"].ToString());
                idTaux       = Int32.Parse(monReader["show_priceRate"].ToString());
                idPiece      = Int32.Parse(monReader["show_theaterPiece"].ToString());
                bool trouve = false;
                int  i      = 0;
                while (trouve == false && i < lesPiecesDeTheatre.Count)
                {
                    if (lesPiecesDeTheatre[i].TheaterPiece_id == idPiece)
                    {
                        // Si on l'a, on l'ajoute
                        laPiece = lesPiecesDeTheatre[i];
                        trouve  = true;
                    }
                    else
                    {
                        i++;
                    }
                }
                // On trouve dans la liste des pièces de théâtres celle correspondant à l'id
                bool trouve2 = false;
                int  i2      = 0;
                while (trouve2 == false && i2 < lesTaux.Count)
                {
                    if (lesTaux[i2].PriceRate_id == idTaux)
                    {
                        // Si on l'a, on l'ajoute
                        letaux  = lesTaux[i2];
                        trouve2 = true;
                    }
                    else
                    {
                        i2++;
                    }
                }
                uneRepresentation = new Show(idShow, uneDateHeure, nbPlaces, letaux, laPiece);
                lesRepresentations.Add(uneRepresentation);
            }
            monReader.Close();
            // Fermeture de la connexion
            maConnexion.Close();
            return(lesRepresentations);
        }
        // Renvoie la liste des représentations
        // Utilise la DAO PiecesTheatres pour avoir la liste des pièces
        // besoin du taux (et donc des jours)
        public static List <Show> GetShows()
        {
            //variables
            int          idShow            = 0;
            DateTime     uneDateHeure      = new DateTime(2018, 01, 01, 00, 00, 00); //besoin de date et heure
            int          nbPlaces          = 0;
            TheaterPiece laPiece           = null;                                   //besoin de nomPiece, durée
            PriceRate    letaux            = null;                                   //calcul du prix pour date, heure, semaine
            Show         uneRepresentation = null;


            // Création d'une liste vide d'objets lesRepresentations
            List <Show> lesRepresentations = new List <Show>();

            // Récupération de la liste des pièces de théâtre
            List <TheaterPiece> lesPiecesDeTheatre = PiecesTheatreDAO.GetTheaterPieces();

            // Récupération de la liste des taux
            List <PriceRate> lesTaux = GetPriceRateWeeksDays();

            // Connexion à la BD
            SqlConnection maConnexion = ConnexionBD.GetConnexionBD().GetSqlConnexion();

            SqlCommand cmd = new SqlCommand();

            cmd.Connection  = maConnexion;
            cmd.CommandText = "SELECT * FROM Show";


            SqlDataReader monReader = cmd.ExecuteReader();

            // Remplissage de la liste
            while (monReader.Read())
            {
                idShow       = Int32.Parse(monReader["show_id"].ToString());
                uneDateHeure = (DateTime)monReader["show_dateTime"];
                nbPlaces     = Int32.Parse(monReader["show_seats"].ToString());
                int idDutaux = Convert.ToInt32(monReader["show_priceRate"].ToString());
                int idPiece  = Convert.ToInt32(monReader["show_theaterPiece"].ToString());

                // On trouve dans la liste des pièces de théâtres celle correspondant à l'id
                bool trouve = false;
                int  i      = 0;
                while (trouve == false && i < lesPiecesDeTheatre.Count)
                {
                    if (lesPiecesDeTheatre[i].TheaterPiece_id == idPiece)
                    {
                        // Si on l'a, on l'ajoute
                        laPiece = lesPiecesDeTheatre[i];
                        trouve  = true;
                    }
                    else
                    {
                        i++;
                    }
                }
                bool trouve2 = false;
                int  i2      = 0;
                while (trouve2 == false && i2 < lesTaux.Count)
                {
                    if (lesTaux[i2].PriceRate_id == idDutaux)
                    {
                        // Si on l'a, on l'ajoute
                        letaux  = lesTaux[i2];
                        trouve2 = true;
                    }
                    else
                    {
                        i2++;
                    }
                }
                uneRepresentation = new Show(idShow, uneDateHeure, nbPlaces, letaux, laPiece);
                lesRepresentations.Add(uneRepresentation);
            }

            monReader.Close();

            // Fermeture de la connexion
            maConnexion.Close();
            return(lesRepresentations);
        }