//Metodi, joka hakee elokuvaan liittyvät näytökset tietokannasta ja täyttää //näytökset - datagridin niillä sekä antaa elokuvan poisto, muokkaus sekä näytösten //muokkaus - painikkeet käytettäväksi private void dg_Elokuvat_SelectionChanged(object sender, SelectionChangedEventArgs e) { dg_Naytokset.Items.Clear(); if (dg_Elokuvat.SelectedIndex != -1) { elokuvaIndeksi = dg_Elokuvat.SelectedIndex; Elokuva elokuva = kaikkiElokuvat[elokuvaIndeksi]; elokuvanNaytokset = tietokanta.GetElokuvanNaytokset(elokuva); foreach (Näytös naytos in elokuvanNaytokset) { dg_Naytokset.Items.Add(new { Teatteri = naytos.Teatteri.Nimi, Sali = naytos.Sali.Nimi, Pvm = naytos.Aika.ToShortDateString(), Klo = naytos.Aika.ToShortTimeString() }); } btn_Avaa_Elokuvan_Muokkaus.IsEnabled = true; btn_Muokkaa_Naytokset.IsEnabled = true; btn_Poista_Elokuva.IsEnabled = true; } else { dg_Elokuvat.Items.Clear(); btn_Avaa_Elokuvan_Muokkaus.IsEnabled = false; btn_Muokkaa_Naytokset.IsEnabled = false; btn_Poista_Elokuva.IsEnabled = false; } }
/// <summary> /// Metodi joka luo uuden Elokuva - olion elokuvan lisäystä varten. /// Metodi tarkistaa myös että käyttäjä on antanut kaikki elokuvan tiedot sekä sen /// jos elokuva on jo olemassa järjestelmässä. Käyttäjä myös ohjataan Näytösten lisäys - sivulle /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Lisaa_Elokuvan_Perustiedot_Click(object sender, RoutedEventArgs e) { if (txt_Elokuvan_Nimi.Text.Equals("") || txt_Vuosi.Text.Equals("") || txt_Kesto.Text.Equals("") || txt_Kuvaus.Text.Equals("")) { tulostaIlmoitus("Vaadittavia tietoja puuttuu! Tarkista tiedot", lbl_lisays_ilmoitus, true); } else { Elokuva elokuva = tietokanta.GetElokuva(txt_Elokuvan_Nimi.Text); if (!elokuva.Nimi.Equals("")) { tulostaIlmoitus("Elokuva on jo olemassa. Valitse toinen nimi elokuvalle", lbl_lisays_ilmoitus, true); } else { elokuvanNimi = txt_Elokuvan_Nimi.Text; elokuvanVuosi = Int32.Parse(txt_Vuosi.Text); elokuvanKesto = Int32.Parse(txt_Kesto.Text); elokuvanKuvaus = txt_Kuvaus.Text; lisattavaElokuva = new Elokuva(elokuvanNimi, elokuvanVuosi, elokuvanKesto, elokuvanKuvaus, "Kylla"); Perustiedot_Grid.Visibility = Visibility.Collapsed; Naytokset_Lisays_Grid.Visibility = Visibility.Visible; } } }
/// <summary> /// Metodi joka päivittää elokuvan tiedot järjestelmään /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void btn_Paivita_Elokuvan_Perustiedot_Click(object sender, RoutedEventArgs e) { if (txt_Elokuvan_NimiP.Text.Equals("") || txt_KestoP.Text.Equals("") || txt_VuosiP.Text.Equals("") || txt_KuvausP.Text.Equals("")) { tulostaIlmoitus("Tarvittavia tietoja puuttuu! Tarkista elokuvan tiedot", lbl_Paivitys_ilmoitus, true); } else { Elokuva elokuva = tietokanta.GetElokuva(txt_Elokuvan_NimiP.Text); paivitettavaElokuva.Nimi = txt_Elokuvan_NimiP.Text; paivitettavaElokuva.Vuosi = int.Parse(txt_VuosiP.Text); paivitettavaElokuva.Kesto = int.Parse(txt_KestoP.Text); paivitettavaElokuva.Teksti = txt_KuvausP.Text; tietokanta.UpdateElokuva(paivitettavaElokuva, elokuvanVanhaNimi); tietokanta.Ajasql($"UPDATE naytokset SET elokuvannimi='{paivitettavaElokuva.Nimi}' WHERE elokuvannimi='{elokuvanVanhaNimi}'"); tulostaIlmoitus("Elokuvan päivitys onnistui. Ladataan...", lbl_Paivitys_ilmoitus, false); await Task.Delay(1000); paivitettavaElokuva = null; this.toimintoKesken = false; Perustiedot_Grid.Visibility = Visibility.Visible; YllapidonEtusivuTab.IsSelected = true; } }
public Näytös(Elokuva elokuva, DateTime aika, Elokuvasali sali, Teatteri teatteri) { this.Elokuva = elokuva; this.Aika = aika; this.Sali = sali; this.Teatteri = teatteri; }
//käyttäjä voi muokata valitsemaansa varausta. // private void Button_Muokkaa(object sender, RoutedEventArgs e) { //selectedItem edustaa varausta, jota käyttäjä haluaa muokata. Luomalla siitä uusi //Dictionary, voidaan elokuvan nimen perusteella luoda uusi varaustapahtuma // var selectedItem = (KeyValuePair <Näytös, List <Paikka> >)Varaukset.SelectedItem; Elokuva valittuElokuva = _tietokanta.GetElokuva(selectedItem.Key.Elokuva.Nimi); List <Näytös> näytökset = _tietokanta.GetElokuvanNaytokset(valittuElokuva); TulevatNäytökset.ItemsSource = näytökset; //loopataan valitun näytöksen paikat läpi, luodaan niistä Paikka- luokan instanssi //ja poistetaan valittu varaus tietokannasta. // var paikat = selectedItem.Value.Count; for (int i = 0; i < paikat; i++) { Paikka poistettava = selectedItem.Value[i] as Paikka; Console.WriteLine(poistettava.PaikkaNro); _tietokanta.PoistaPaikkaVaraus(poistettava, selectedItem.Key); } Siirry("varaa_näytös"); }
/// <summary> /// Päivittää elokuvaan liittyvät näytökset /// </summary> /// <param name="elokuva"></param> /// <param name="naytokset"></param> public void MuokkaaNaytokset(Elokuva elokuva, List <Näytös> naytokset) { // Tyhjennä aikaisemmat näytökset DelElokuvanNaytos(elokuva); foreach (var naytos in naytokset) { SetElokuvanNaytos(elokuva, naytos); } }
/// <summary> /// Metodi joka tyhjentää kaikki UI elementit Elokuvan päivitys - sivulta /// </summary> private void clearElokuvanPaivitys() { paivitettavaElokuva = null; txt_Elokuvan_NimiP.Clear(); txt_VuosiP.Clear(); txt_KestoP.Clear(); txt_KuvausP.Clear(); txt_Elokuvan_NimiP.Clear(); }
private void Button_VaraaNäytös(object sender, RoutedEventArgs e) { // tietokanta: Hae näytökset listausta varten sellaisiin esityksiin jotka ovat tulevaisuudessa Elokuva valittu_elokuva = Ohjelmisto.SelectedItem as Elokuva; List <Näytös> näytökset = _tietokanta.GetElokuvanNaytokset(valittu_elokuva); TulevatNäytökset.ItemsSource = näytökset; Siirry("varaa_näytös"); }
//Metodi joka avaa Elokuvan lisäys - sivun private void btn_Avaa_Elokuvan_Lisays_Click(object sender, RoutedEventArgs e) { paivitettavaElokuva = null; Perustiedot_Grid.Visibility = Visibility.Visible; Naytokset_Lisays_Grid.Visibility = Visibility.Collapsed; Perustietojen_Paivitys_Grid.Visibility = Visibility.Collapsed; Naytosten_Paivitys_Grid.Visibility = Visibility.Collapsed; this.toimintoKesken = true; Lisaa_Elokuva_Tab.IsSelected = true; }
/// <summary> /// Metodi joka lisää elokuvan tietokantaan ja /// palauttaa true jos onnistuu /// </summary> /// <param name="elokuva"></param> /// <param name="naytokset"></param> /// <returns></returns> private bool lisaaElokuvaTietokantaan(Elokuva elokuva, List <Näytös> naytokset) { tietokanta.SetElokuva(elokuva); foreach (Näytös naytos in naytokset) { tietokanta.Ajasql("INSERT INTO naytokset(elokuvannimi, aika, sali, teatteri) VALUES ('" + elokuva.Nimi + "', '" + naytos.Aika + "', '" + naytos.Sali.Nimi + "', '" + naytos.Teatteri.Nimi + "')"); } return(true); }
/// <summary> /// Metodi joka päivittää elokuvan näytökset järjestelmään /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void btn_Paivita_Naytokset_Click(object sender, RoutedEventArgs e) { tietokanta.MuokkaaNaytokset(paivitettavaElokuva, paivitettavatNaytokset); tulostaIlmoitus("Näytökset päivitetty. Ladataan...", lbl_Naytokset_Paivitys_Ilmoitus, false); await Task.Delay(1000); paivitettavaElokuva = null; paivitettavatNaytokset = null; this.toimintoKesken = false; YllapidonEtusivuTab.IsSelected = true; }
//Metodi joka avaa Elokuvan muokkaus - sivun private void btn_Avaa_Elokuvan_Muokkaus_Click(object sender, RoutedEventArgs e) { if (elokuvaIndeksi != -1) { paivitettavaElokuva = kaikkiElokuvat[elokuvaIndeksi]; Perustiedot_Grid.Visibility = Visibility.Collapsed; Naytokset_Lisays_Grid.Visibility = Visibility.Collapsed; Perustietojen_Paivitys_Grid.Visibility = Visibility.Visible; this.toimintoKesken = true; Lisaa_Elokuva_Tab.IsSelected = true; } }
/// <summary> /// Metodi joka tyhjentää kaikki UI elementit Elokuvan lisays - sivulta /// </summary> private void clearElokuvanLisays() { lisattavaElokuva = null; txt_Elokuvan_Nimi.Clear(); txt_Vuosi.Clear(); txt_Kesto.Clear(); txt_Kuvaus.Clear(); cmb_Elokuvateatteri.SelectedIndex = -1; cmb_Salit.SelectedIndex = -1; datep_Naytoksen_aika.Text = ""; lisattavatNaytokset.Clear(); dg_Lisattavat_Naytokset.Items.Clear(); }
//Metodi joka poistaa elokuvan järjestelmästä private void btn_Poista_Elokuva_Click(object sender, RoutedEventArgs e) { if (elokuvaIndeksi != -1) { Elokuva elokuva = kaikkiElokuvat[elokuvaIndeksi]; MessageBoxResult varmistus = Xceed.Wpf.Toolkit.MessageBox.Show("Haluatko varmasti poistaa elokuvan: " + elokuva.Nimi, "Elokuvan poistaminen", MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (varmistus == MessageBoxResult.OK) { dg_Elokuvat.Items.RemoveAt(elokuvaIndeksi); tietokanta.DelElokuvanNaytos(elokuva); tietokanta.DelElokuva(elokuva); paivitaElokuvatDG(); } } }
/// <summary> /// Etsii ja palauttaa halutun elokuvan tietokannasta /// </summary> /// <param name="elokuvaNimi"></param> /// <returns></returns> public Elokuva GetElokuva(string elokuvaNimi) { var res = new Elokuva("", 1, 1, "", ""); string sql = $"SELECT * FROM elokuvat WHERE elokuvannimi='{elokuvaNimi}'"; _sqlkomento = new SQLiteCommand(sql, _kantaYhteys); _sqllukija = _sqlkomento.ExecuteReader(); if (_sqllukija.FieldCount == 0) { return(res); // Taulu on tyhja } while (_sqllukija.Read()) { res = new Elokuva(_sqllukija.GetString(1), int.Parse(_sqllukija.GetString(2)), int.Parse(_sqllukija.GetString(3)), _sqllukija.GetString(4), _sqllukija.GetString(5)); } return(res); }
/// <summary> /// Palauttaa elokuvaan kuuluvat näytökset /// </summary> /// <param name="elokuva"></param> /// <returns></returns> public List <Näytös> GetElokuvanNaytokset(Elokuva elokuva) { var res = new List <Näytös>(); var salit = GetElokuvasalit(); string sql = $"SELECT * FROM naytokset WHERE elokuvannimi='{elokuva.Nimi}'"; _sqlkomento = new SQLiteCommand(sql, _kantaYhteys); _sqllukija = _sqlkomento.ExecuteReader(); if (_sqllukija.FieldCount == 0) { return(res); // Taulu on tyhja } while (_sqllukija.Read()) { res.Add(new Näytös(elokuva, DateTime.Parse(_sqllukija.GetString(2)), HaeElokuvasali(salit, _sqllukija.GetString(3)), HaeTeatteri(salit, _sqllukija.GetString(4)))); } return(res); }
/// <summary> /// Poistaa näytökset elokuvalta /// </summary> /// <param name="elokuva"></param> public void DelElokuvanNaytos(Elokuva elokuva) { Ajasql($"DELETE FROM naytokset WHERE elokuvannimi='{elokuva.Nimi}'"); }
/// <summary> /// Luo uuden näytöksen elokuvalle /// </summary> /// <param name="elokuva"></param> /// <param name="naytos"></param> public void SetElokuvanNaytos(Elokuva elokuva, Näytös naytos) { Ajasql($"INSERT INTO naytokset VALUES (null, '{elokuva.Nimi}', '{naytos.Aika}', '{naytos.Sali.Nimi}', '{naytos.Teatteri.Nimi}')"); }
/// <summary> /// Metodi joka poistaa elokuvan tietokannasta /// </summary> /// <param name="elokuva"></param> public void DelElokuva(Elokuva elokuva) { Ajasql($"DELETE FROM elokuvat WHERE elokuvannimi='{elokuva.Nimi}'"); }
/// <summary> /// Metodi joka päivittää elokuvan nimen /// </summary> /// <param name="elokuva"></param> /// <param name="vanhaNimi"></param> public void UpdateElokuva(Elokuva elokuva, string vanhaNimi) { Ajasql($"UPDATE elokuvat SET elokuvannimi='{elokuva.Nimi}',vuosi='{elokuva.Vuosi}', kesto='{elokuva.Kesto}', kuvaus='{elokuva.Teksti}', ohjelmistossa='{elokuva.Ohjelmistossa}' WHERE elokuvannimi='{vanhaNimi}'"); }
/// <summary> /// SetElokuva metodi joka luo tietokantaan uuden elokuvan /// </summary> /// <param name="elokuva"></param> public void SetElokuva(Elokuva elokuva) { Ajasql($"INSERT INTO elokuvat VALUES (null, '{elokuva.Nimi}', '{elokuva.Vuosi}','{elokuva.Kesto}', '{elokuva.Teksti}', '{elokuva.Ohjelmistossa}')"); }