Ejemplo n.º 1
0
        private void rezervirajSjedaloButton_Click(object sender, EventArgs e)
        {
            if ((selektiraniLet.DatumPolaska.Date.Day - DateTime.Now.Date.Day) < 3 && (selektiraniLet.DatumDolaska.Date.Month == DateTime.Now.Date.Month))
            {
                MessageBox.Show($"Rok za rezervaciju karata za let {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma} je istekao.");
                return;
            }
            if (odabranoSjedalo == null)
            {
                MessageBox.Show("Niste odabrali sjedalo za koje želite rezervirati kartu.");
                return;
            }
            if (odabranoSjedalo.BackColor == Color.Red)
            {
                MessageBox.Show($"Sjedalo {odabranoSjedalo.Name} na letu {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma} je zauzeto.");
                return;
            }
            else
            {
                Sjedalo sjedalo = RepozitorijSkyFlyReservation.DohvatiSjedalo(odabranoSjedalo.Name);

                Rezervacija rezervacija = new Rezervacija()
                {
                    LetRezervacije          = selektiraniLet,
                    KorisnikRezervacije     = RepozitorijSkyFlyReservation.prijavljeniKorisnik,
                    RezerviranoSjedalo      = sjedalo,
                    DatumVrijemeRezervacije = DateTime.Now
                };

                int numAffectedRowsInsert = RepozitorijSkyFlyReservation.DodajRezervacijuKarte(rezervacija);
                int numAffectedRowsUpdate = RepozitorijSkyFlyReservation.AzurirajBrojSlobodnihMjesta(selektiraniLet);

                if (numAffectedRowsInsert > 0 && numAffectedRowsUpdate > 0)
                {
                    MessageBox.Show($"Uspješno ste rezervirali sjedalo {sjedalo.OznakaSjedala} na letu {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma}.\n\nNa Vašu e-mail adresu poslani su podaci za plaćanje.");
                    PošaljiObavijest(selektiraniLet, sjedalo);
                    OsvjeziSjedalaUAvionu(RepozitorijSkyFlyReservation.DohvatiRezerviranaSjedala(selektiraniLet));
                }
                else
                {
                    MessageBox.Show("Dogodila se pogreška kod rezervacije sjedala.Rezervacija nije evidentirana.");
                    this.Close();
                    return;
                }
            }
        }