public EntityService() { _biletService = new BiletRepository(); _calisanService = new CalisanRepository(); _filmService = new FilmRepository(); _filmturService = new FilmTurRepository(); _musteriService = new MusteriRepository(); _salonService = new SalonRepository(); _seansService = new SeansRepository(); }
/// <summary> /// Metoda zwracająca listę dni, w których odbywają się seanse. /// </summary> /// <returns>Lista dni, w których odbywają się seanse</returns> internal DateTime[] GetShowingsDates() { SeansRepository seansRepository = new SeansRepository(); List <DateTime> dates = new List <DateTime>(); List <SeansEntity> seanse = seansRepository.FindAll(); foreach (SeansEntity seans in seanse) { dates.Add(seans.Kiedy); } return(dates.ToArray()); }
/// <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()); }