/// <summary> /// Metoda zwracająca listę wcześniejszych rezerwacji. /// </summary> /// <returns>Informacje o wcześniejszych rezerwacjach</returns> internal BookingResponse[] GetBookings() { if (loggedUser != null) { RezerwacjaRepository rezerwacjaRepository = new RezerwacjaRepository(); MiejsceRezerwacjaRepository miejsceRezerwacjaRepository = new MiejsceRezerwacjaRepository(); MiejsceRepository miejsceRepository = new MiejsceRepository(); FilmRepository filmRepository = new FilmRepository(); SeansRepository seansRepository = new SeansRepository(); List <RezerwacjaEntity> rezerwacje = rezerwacjaRepository.FindAllByUzytkownikId(loggedUser.Id); List <BookingResponse> bookings = new List <BookingResponse>(); foreach (RezerwacjaEntity rezerwacja in rezerwacje) { BookingResponse booking = new BookingResponse(); SeansEntity seans = seansRepository.FindById(rezerwacja.IdSeansu).OrElseThrow("Nie istnieje seans o podanym ID"); booking.DateTime = seans.Kiedy; FilmEntity film = filmRepository.FindById(seans.IdFilmu).OrElseThrow("Nie można odnaleźć w bazie danych filmu o podanym ID"); booking.FilmName = film.Nazwa; List <BookedSeatResponse> bookedSeats = new List <BookedSeatResponse>(); List <MiejsceRezerwacjaEntity> miejscaRezerwacje = miejsceRezerwacjaRepository.FindAllByRezerwacjaId(rezerwacja.Id); foreach (MiejsceRezerwacjaEntity miejsceRezerwacja in miejscaRezerwacje) { BookedSeatResponse bookedSeat = new BookedSeatResponse(); MiejsceEntity miejsce = miejsceRepository.FindById(miejsceRezerwacja.IdMiejsca).OrElseThrow("Nie istnieje miejsce o podanym ID"); bookedSeat.PosX = miejsce.Numer; bookedSeat.PosY = miejsce.Rzad; bookedSeats.Add(bookedSeat); } booking.Seats = bookedSeats.ToArray(); bookings.Add(booking); } return(bookings.ToArray()); } else { throw new Exception("Nie uzyskano autoryzacji do wykonania zadania"); } }
/// <summary> /// Metoda zwracająca listę dostępnych seansów. /// </summary> /// <param name="date">Data, dla której mają zostać wyświetlone seanse</param> /// <returns>Informacje o dostępnych seansach</returns> internal ShowingResponse[] GetShowings(DateTime date) { SeansRepository projectionsRepo = new SeansRepository(); FilmRepository moviesRepo = new FilmRepository(); List <SeansEntity> projections = projectionsRepo.FindByKiedy(date); List <ShowingResponse> responses = new List <ShowingResponse>(); FilmEntity tempFilmEntity; foreach (var projection in projections) { tempFilmEntity = moviesRepo.FindById(projection.IdFilmu).OrElseThrow("Nie można odnaleźć w bazie danych filmu o podanym ID"); responses.Add(new ShowingResponse { Id = projection.Id, DateTime = projection.Kiedy, FilmName = tempFilmEntity.Nazwa, FilmDuration = tempFilmEntity.CzasTrwania, FilmYear = tempFilmEntity.RokPremiery }); } return(responses.ToArray()); }