private void confirmButton_Click(object sender, EventArgs e)
        {
            List <int> chosenIds = new List <int>();

            foreach (Label label in seatsPanel1.Labels)
            {
                if (label.BackColor == Color.Yellow)
                {
                    Int32.TryParse(label.Name, out int id);
                    chosenIds.Add(id);
                }
            }
            if (chosenIds.Count == 0)
            {
                MessageBox.Show("Nie wybrano żadnego miejsca", "Błąd", MessageBoxButtons.OK);
            }
            else
            {
                BookSeatsRequest request = new BookSeatsRequest
                {
                    ShowingId = ShowingId
                };
                request.SeatsIds = chosenIds.ToArray();

                RequestBookShowing.Invoke(request);

                foreach (Label label in seatsPanel1.Labels)
                {
                    seatsPanel1.Controls.Remove(label);
                }
                Visible = false;
            }
        }
 /// <summary>
 /// Metoda obsługująca event rezerwowania miejsc na dany seans.
 /// </summary>
 /// <param name="request">Dane dotyczące seansu i wybranych miejsc</param>
 private void HandleBookShowing(BookSeatsRequest request)
 {
     try
     {
         model.BookSeats(request);
     }
     catch (Exception ex)
     {
         view.ShowMessage(false, TranslateToPolish(ex.Message));
     }
 }
Exemple #3
0
        /// <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");
            }
        }