private void obrisiLetButton_Click(object sender, EventArgs e)
        {
            Let selektiraniLet = DohvatiSelektiraniLet();

            if (selektiraniLet == null)
            {
                MessageBox.Show("Niste odabrali let koji želite obrisati.");
                return;
            }

            RepozitorijSkyFlyReservation.ObrisiRezervacije(selektiraniLet);
            int numAffectedRows = RepozitorijSkyFlyReservation.ObrisiLet(selektiraniLet);

            if (numAffectedRows > 0)
            {
                MessageBox.Show($"Uspješno ste obrisali let {selektiraniLet.BrojLeta} | {selektiraniLet.PolazisniAerodrom.NazivAerodroma}->{selektiraniLet.OdredisniAerodrom.NazivAerodroma}.");
            }

            if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika != UlogaKorisnika.Owner)
            {
                nazivAviokompanijeLabel.Text = RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.NazivAviokompanije;
                OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove(RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.AviokompanijaId));
            }
            if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika == UlogaKorisnika.Owner)
            {
                popisLetovaLabel.Text = "Popis letova";
                OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiSveLetove());
            }
        }
        private void pretraziLetoveButton_Click(object sender, EventArgs e)
        {
            Aerodrom odabraniPolazisniAerodrom = polazisniAerodromComboBox.SelectedItem as Aerodrom;
            Aerodrom odabraniOdredisniAerodrom = odredisniAerodromComboBox.SelectedItem as Aerodrom;
            DateTime datumVrijemePolaska       = datumPolaskaDateTimePicker.Value;

            if (odabraniPolazisniAerodrom.AerodromId == odabraniOdredisniAerodrom.AerodromId)
            {
                MessageBox.Show("Polazišni i odredišni aerodrom ne smiju biti isti.");
                return;
            }

            if (pretraziPremaDatumuCheckBox.Checked == true)
            {
                if (datumVrijemePolaska.Date < DateTime.Now.Date)
                {
                    DateTime datum = DateTime.Now;
                    MessageBox.Show($"Datum polaska ne može biti manji od datuma {datum.ToString("dd/MM/yyyy")}.");
                    return;
                }
                List <Let> letovi = RepozitorijSkyFlyReservation.DohvatiLetove(odabraniPolazisniAerodrom, odabraniOdredisniAerodrom, datumVrijemePolaska.ToString("yyyy-MM-dd"));
                OsvjeziDGV(letovi);
            }
            else
            {
                List <Let> letovi = RepozitorijSkyFlyReservation.DohvatiLetove(odabraniPolazisniAerodrom, odabraniOdredisniAerodrom);
                OsvjeziDGV(letovi);
            }
        }
        private void obrisiLetButton_Click(object sender, EventArgs e)
        {
            FormObrisiLet form = new FormObrisiLet();

            form.ShowDialog();

            OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove());
        }
        private void dodajLetButton_Click(object sender, EventArgs e)
        {
            FormDodajLet form = new FormDodajLet();

            form.ShowDialog();

            OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove());
            OsvjeziComboBox(RepozitorijSkyFlyReservation.DohvatiAerodrome());
        }
        private void FormPregledLetova_Load(object sender, EventArgs e)
        {
            List <Aerodrom> aerodromi = RepozitorijSkyFlyReservation.DohvatiAerodrome();

            OsvjeziComboBox(aerodromi);

            OsvjeziKomponente();

            List <Let> letovi = RepozitorijSkyFlyReservation.DohvatiLetove();

            OsvjeziDGV(letovi);
        }
 private void FormObrisiLet_Load(object sender, EventArgs e)
 {
     if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika != UlogaKorisnika.Owner)
     {
         nazivAviokompanijeLabel.Text = RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.NazivAviokompanije;
         OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove(RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.AviokompanijaId));
     }
     if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika == UlogaKorisnika.Owner)
     {
         popisLetovaLabel.Text = "Popis letova";
         OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiSveLetove());
     }
 }
        private void kupiKartuButton_Click(object sender, EventArgs e)
        {
            Let selektiraniLet = DohvatiSelektiraniLet();

            if (selektiraniLet == null)
            {
                MessageBox.Show("Niste odabrali let za koji želite kupiti kartu.");
                return;
            }

            FormRezervacijaKarte form = new FormRezervacijaKarte(selektiraniLet);

            form.ShowDialog();

            OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove());
        }
 private void prikaziSveButton_Click(object sender, EventArgs e)
 {
     OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove());
     OsvjeziComboBox(RepozitorijSkyFlyReservation.DohvatiAerodrome());
 }
        private void azurirajLetButton_Click(object sender, EventArgs e)
        {
            Let odabraniLet = DohvatiSelektiraniLet();

            if (odabraniLet == null)
            {
                MessageBox.Show("Niste odabrali let koji želite ažurirati.");
                return;
            }

            Aerodrom polazisniAerodrom = polazisniComboBox.SelectedItem as Aerodrom;
            Aerodrom odredisniAerodrom = odredisniComboBox.SelectedItem as Aerodrom;
            Avion    avionNaLetu       = avionNaLetuComboBox.SelectedItem as Avion;
            DateTime datumPolaska      = datumVrijemePolaskaDateTimePicker.Value;
            DateTime datumDolaska      = datumVrijemeDolaskaDateTimePicker.Value;
            double   cijenaKarte       = double.Parse(cijenaKarteTextBox.Text);

            bool provjeraPodataka = ProvjeriPodatke(polazisniAerodrom, odredisniAerodrom, datumPolaska, datumDolaska);

            if (provjeraPodataka == true)
            {
                int brojRezervacija = odabraniLet.AvionNaLetu.BrojMjesta - odabraniLet.BrojSlobodnihMjesta;


                if (brojRezervacija > avionNaLetu.BrojMjesta)
                {
                    MessageBox.Show($"Na letu {odabraniLet.BrojLeta} je rezervirano {odabraniLet.AvionNaLetu.BrojMjesta - odabraniLet.BrojSlobodnihMjesta} sjedala.\nAvion {avionNaLetu.ProizvodacAviona} {avionNaLetu.ModelAviona} nema dovoljno sjedala.");
                    return;
                }

                string noviBrojLeta = odabraniLet.BrojLeta;

                if ((odabraniLet.PolazisniAerodrom.AerodromId != polazisniAerodrom.AerodromId) || (odabraniLet.OdredisniAerodrom.AerodromId != odredisniAerodrom.AerodromId))
                {
                    string brojLeta = odabraniLet.BrojLeta;

                    int broj = int.Parse(brojLeta.Substring(3, 5));

                    noviBrojLeta = polazisniAerodrom.OznakaAerodroma + broj + odredisniAerodrom.OznakaAerodroma;
                }

                odabraniLet.BrojLeta            = noviBrojLeta;
                odabraniLet.PolazisniAerodrom   = polazisniAerodrom;
                odabraniLet.OdredisniAerodrom   = odredisniAerodrom;
                odabraniLet.AvionNaLetu         = avionNaLetu;
                odabraniLet.DatumPolaska        = datumPolaska;
                odabraniLet.DatumDolaska        = datumDolaska;
                odabraniLet.CijenaKarte         = cijenaKarte;
                odabraniLet.BrojSlobodnihMjesta = avionNaLetu.BrojMjesta - brojRezervacija;

                int numAffectedRows = RepozitorijSkyFlyReservation.AzurirajLet(odabraniLet);

                if (numAffectedRows > 0)
                {
                    MessageBox.Show($"Let {polazisniAerodrom.NazivAerodroma}->{odredisniAerodrom.NazivAerodroma} je uspješno ažuriran.");
                }
            }

            if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika != UlogaKorisnika.Owner)
            {
                nazivAviokompanijeLabel.Text = RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.NazivAviokompanije;
                OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiLetove(RepozitorijSkyFlyReservation.prijavljeniKorisnik.Aviokompanija.AviokompanijaId));
                OsvjeziComboBox();
            }
            if (RepozitorijSkyFlyReservation.prijavljeniKorisnik.UlogaKorisnika == UlogaKorisnika.Owner)
            {
                popisLetovaLabel.Text = "Popis letova";
                OsvjeziDGV(RepozitorijSkyFlyReservation.DohvatiSveLetove());
                OsvjeziComboBox();
            }
        }