/// <summary> /// Metoda rejestrująca w bazie dnaych nowego użytkownika. /// </summary> /// <param name="request">Dane dotyczące nowego użytkownika</param> internal void Register(RegisterRequest request) { UzytkownikRepository uzytkownikRepository = new UzytkownikRepository(); if (uzytkownikRepository.ExistsByNazwaUzytkownika(request.Username)) { BasicResponse?.Invoke(false, "Użytkownik o takiej nazwie już istnieje"); } else { UzytkownikEntity userToRegister = new UzytkownikEntity(request.Username, request.Password, request.FirstName, request.LastName, request.Email, request.Birthday); uzytkownikRepository.Save(userToRegister); BasicResponse?.Invoke(true, "Pomyślnie zarejestrowano użytkownika"); } }
/// <summary> /// Metoda tworząca rezerwację dla zalogowanego użytkownika. /// </summary> /// <param name="request">Dane dotyczące wybranego seansu i miejsc</param> internal void BookSeats(BookSeatsRequest request) { if (loggedUser != null) { RezerwacjaRepository rezerwacjaRepository = new RezerwacjaRepository(); MiejsceRezerwacjaRepository miejsceRezerwacjaRepository = new MiejsceRezerwacjaRepository(); rezerwacjaRepository.Save(new RezerwacjaEntity(request.ShowingId, loggedUser.Id)); RezerwacjaEntity rezerwacja = rezerwacjaRepository.GetLast().OrElseThrow("Nie można odnaleźć żadnej rezerwacji w bazie danych"); foreach (int seatId in request.SeatsIds) { miejsceRezerwacjaRepository.Save(new MiejsceRezerwacjaEntity(rezerwacja.Id, seatId)); } BasicResponse?.Invoke(true, "Zapisano rezerwację"); } else { throw new Exception("Nie uzyskano autoryzacji do wykonania zadania"); } }