//Wywołuje metodę anulowania rezerwacji
        private void MakeReservationButton_Click(object sender, RoutedEventArgs e)
        {
            if (MiejscaList.SelectedItems.Count != 0 && NameText.Text.Length != 0 && SurnameText.Text.Length != 0 && NumberText.Text.Length == 9 && Int32.TryParse(NumberText.Text, out int num))
            {
                try
                {
                    MakeReservation();
                }
                catch (Exception)
                {
                    Info infobox = new Info("Błąd rezerwacji!");
                    infobox.ShowDialog();
                    this.Close();
                    return;
                }

                ErrorLabel.Content = "";
                using (KinoRezerwacjeEntities context = new KinoRezerwacjeEntities())
                {
                    Info infobox = new Info($"Sukces! Twój numer rezerwacji: {context.rezerwacje.Max(r => r.id_rezerwacji)}");
                    infobox.ShowDialog();
                }
                this.Close();
            }
            else
            {
                ErrorLabel.Content = "Wypełnij poprawnie wszystkie pola!";
            }
        }
 // metoda ładująca filmy do comboboxa
 private void LoadFilms()
 {
     try
     {
         using (KinoRezerwacjeEntities context = new KinoRezerwacjeEntities())
         {
             FilmsCombo.ItemsSource       = context.filmy.ToList();
             FilmsCombo.DisplayMemberPath = "tytul";
         }
     }
     catch (Exception)
     {
         throw new Exception();
     }
 }
Beispiel #3
0
        //metoda usuwająca rekordy z tabel "rezerwacje" i "zarezerwowane miejsca"
        private void DeleteReservation(int iD, int number)
        {
            using (KinoRezerwacjeEntities context = new  KinoRezerwacjeEntities())
            {
                var reservation = context.rezerwacje.Where(r => r.id_rezerwacji == iD).Single();

                if (Int32.Parse(reservation.nr_telefonu) == number)
                {
                    context.zarezerwowane_miejsca.RemoveRange(context.zarezerwowane_miejsca.Where(z => z.id_rezerwacji == iD));

                    context.rezerwacje.Remove(reservation);

                    context.SaveChanges();
                }
                else
                {
                    throw new Exception();
                }
            }
        }
        //Uzupełnia listę dostepnych list po wybraniu danego seansu
        private void SeanseList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            using (KinoRezerwacjeEntities context = new KinoRezerwacjeEntities())
            {
                if (SeanseList.SelectedItem != null)
                {
                    MiejscaList.Items.Clear();
                    sits.Clear();
                    NoSitsLabel.Content = "";

                    var curItem = SeanseList.SelectedItem.ToString().Split(' ');

                    int id_sali   = Int32.Parse(curItem[5].ToString());
                    int id_seansu = Int32.Parse(curItem[2].ToString());

                    var miejsca = context.miejsca.Where(m => m.id_sali == id_sali).ToList();

                    foreach (var m in miejsca)
                    {
                        if (!context.zarezerwowane_miejsca.Where(o => o.id_seansu == id_seansu).Any(z => z.id_miejsca == m.id_miejsca))
                        {
                            sits.Add(m.id_miejsca, m.ToString());
                        }
                    }

                    foreach (var s in sits)
                    {
                        MiejscaList.Items.Add(s.Value);
                    }

                    if (MiejscaList.Items.Count == 0)
                    {
                        NoSitsLabel.Content = "Brak wolnych miejsc";
                    }
                }
                else
                {
                    MiejscaList.Items.Clear();
                }
            }
        }
        //dodaje nowe rekordy do tabel "rezerwacje" i "zarezerwowane miejsca"
        private void MakeReservation()
        {
            var list = MiejscaList.SelectedItems;

            var curItem = SeanseList.SelectedItem.ToString().Split(' ');

            using (KinoRezerwacjeEntities context = new KinoRezerwacjeEntities())
            {
                var reservation = new rezerwacje()
                {
                    id_seansu                 = Int32.Parse(curItem[2].ToString()),
                    typ_rezerwacji            = "internetowa",
                    imie_klienta              = NameText.Text,
                    nazwisko_klienta          = SurnameText.Text,
                    nr_telefonu               = NumberText.Text,
                    czy_oplacone              = false,
                    data_dokonania_rezerwacji = DateTime.Now
                };
                context.rezerwacje.Add(reservation);
                context.SaveChanges();

                var id_reservation = context.rezerwacje.Max(r => r.id_rezerwacji);

                int i = 0;

                foreach (var l in list)
                {
                    var reservationSeats = new zarezerwowane_miejsca()
                    {
                        id_rezerwacji = id_reservation,
                        id_seansu     = Int32.Parse(curItem[2].ToString()),
                        id_miejsca    = sits.FirstOrDefault(s => s.Value.Contains(l.ToString())).Key
                    };
                    context.zarezerwowane_miejsca.Add(reservationSeats);
                    i++;
                }

                context.SaveChanges();
            }
        }
        //uzupełnia listę dostępnymi seansami po wybraniu danego filmu z listy rozwijanej
        private void FilmsCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SeanseList.Items.Clear();

            using (KinoRezerwacjeEntities context = new KinoRezerwacjeEntities())
            {
                var item = FilmsCombo.SelectedItem as filmy;

                var seanse = context.seanse.Where(s => s.id_filmu == item.id_filmu).Where(s => s.czas_rozpoczecia > DateTime.Now).ToList();

                foreach (var s in seanse)
                {
                    SeanseList.Items.Add(s.ToString());
                }

                TextDirector.Visibility = Visibility.Visible;
                TextDuration.Visibility = Visibility.Visible;
                TextLanguage.Visibility = Visibility.Visible;
                DirectorLabel.Content   = item.nazwisko_rezysera;
                DurationLabel.Content   = item.czas_trwania_minuty + " min";
                LanguageLabel.Content   = item.jezyk;
            }
        }