//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"); }
// hakee paikan _Valinnat taulukosta private Valinta _Valinta(Paikka p) { int rivi = p.Sali.Rivejä - p.Rivi; int paikka = p.PaikkaRivissä - 1; // peilikuva: Sali.PaikkojaRivissä - p.PaikkaRivissä; return(_Valinnat[rivi][paikka]); }
// lisää valituksi paikka p // public void Valitse(Paikka p) { Valinta v = _Valinta(p); v.Valittu = true; if (!ValitutPaikat.Contains(v.Paikka)) // huom, ref-yhtäsuuruus { ValitutPaikat.Add(v.Paikka); } }
//Käyttäjä voi poistaa haluamansa varauksen // private void Button_Poista(object sender, RoutedEventArgs e) { var selectedItem = (KeyValuePair <Näytös, List <Paikka> >)Varaukset.SelectedItem; 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("varaus_poistettu"); }
// poista valinta paikalta p // public void PoistaValinta(Paikka p) { _Valinta(p).Valittu = false; }
public Valinta(Elokuvasali sali, int paikkaNro, bool valittu) { Paikka = new Paikka(sali, paikkaNro); Valittu = valittu; Valittavissa = true; }
} // CheckBox.IsEnabled public Valinta(Paikka p) { Paikka = p; }
// paikan valinta: enabled/disabled // public void Valittavissa(Paikka p, bool valittavissa) { _Valinta(p).Valittavissa = true; }
/// <summary> /// Metodi joka poistaa paikkavarauksen tietystä näytöksestä /// </summary> /// <param name="paikka"></param> /// <param name="naytos"></param> public void PoistaPaikkaVaraus(Paikka paikka, Näytös naytos) { Ajasql($"DELETE FROM varaukset WHERE elokuvasali='{paikka.Sali.Nimi}' AND naytosaika='{naytos.Aika.ToShortTimeString()}' AND istumapaikka='{paikka.PaikkaNro}' AND elokuva='{naytos.Elokuva.Nimi}' AND elokuvasali='{naytos.Sali.Nimi}' "); }
/// <summary> /// Metodi joka varaa paikan käyttäjälle tietystä näytöksestä /// </summary> /// <param name="kayttaja"></param> /// <param name="naytos"></param> /// <param name="paikka"></param> public void VaraaPaikka(Kayttaja kayttaja, Näytös naytos, Paikka paikka) { Ajasql($"INSERT INTO varaukset VALUES (null, '{naytos.Aika.ToShortTimeString()}', '{kayttaja.Tunnus}', {paikka.PaikkaNro}, '{naytos.Sali.Nimi}', '{naytos.Elokuva.Nimi}') "); }