public BookDialog(DateTime dVon, Zimmer z, Buchung buchung1) { //Wird bei einem Reservierten zimmer benötigt; buchung1.Zimmer = z; buchung = buchung1; zimmer = z; sper = hm.repSperrung.Get().Where(a => a.bisSperrung > DateTime.Now).ToList(); InitializeComponent(); this.cbZimmer.Text = "--Bitte zuerst Daten angeben--"; this.cbZimmer.ItemsSource = hm.repZimmer.Get(); this.cbZimmer.SelectedValue = z.idZimmer; dpVon.Text = dVon.ToString(); ExbestKunde.IsExpanded = true; }
private void ButtonRes_Click(object sender, RoutedEventArgs e) { Buchung buchung = new Buchung(); Zimmer zimmer = new Zimmer(); List<Buchung> bookings = null; ZimmerTyp zimmerT; if (dpVon.Text != "" && dpBis.Text != "") { buchung.vonBuchung = Convert.ToDateTime(dpVon.Text); buchung.bisBuchung = Convert.ToDateTime(dpBis.Text); bookings = hm.repBuchung.Get(includes: "Kunde, Zimmer").Where(c => c.vonBuchung < dpBis.SelectedDate).Where(d => d.bisBuchung > dpVon.SelectedDate).ToList(); } //Kunde muss ausgewählt werden if ((tbvorn.Text != "" || tbVorNameNew.Text != "") && dpVon.Text != "" && dpBis.Text != "" && tbErw.Text != "") { errLabel.Content = ""; int idzimmer = (int)cbZimmer.SelectedValue; ////testbuchungen //prüfen ob zimmer schon reserviert wurde //List<Buchung> tbuchungen = hm.repBuchung.Get(includes: "Zimmer,Kunde").Where(b => b.idZimmer == idzimmer) // .Where(b => b.vonBuchung.CompareTo(buchung.vonBuchung) <= 0 && b.bisBuchung.CompareTo(buchung.vonBuchung) >= 0 || // vonbuchung is früher als value // bisbuchung ist später als value ODER // b.vonBuchung.CompareTo(buchung.bisBuchung) <= 0 && b.bisBuchung.CompareTo(buchung.bisBuchung) >= 0) // vonbuchung is früher als value // bisbuchung is später als value // .ToList(); if (tbKind.Text == "") tbKind.Text = "0"; zimmerT = hm.repZimmerTyp.Get().Where(a => a.anzahlBetten == (Convert.ToInt16(tbErw.Text) + Convert.ToInt16(tbKind.Text))).FirstOrDefault(); //if (tbuchungen.Count <= 0) //{ if (zimmerT != null) { if (bookings.Where(a => a.idZimmerTyp == zimmerT.idZimmerTyp).Count() < zimmerT.bettenVorhanden) { //Buchung if (ExbestKunde.IsExpanded) newKunde = (Kunde)tbvorn.DataContext; if (ExkundeNeu.IsExpanded) { newKunde.vornameKunde = tbVorNameNew.Text; newKunde.nachnameKunde = tbNachnNew.Text; newKunde.adresseKunde = tbAdresseNew.Text; newKunde.PLZ = tbPLZNew.Text; newKunde.Ort = tbOrtNew.Text; newKunde.emailKunde = tbEMailNew.Text; newKunde.telefonKunde = tbTelefonNew.Text; hm.repKunde.Create(newKunde); } buchung.idKunde = newKunde.idKunde; buchung.infoBuchung = tbInfo.Text; buchung.erwachseneBuchung = Convert.ToInt32(tbErw.Text); buchung.kinderBuchung = (tbKind.Text != "") ? Convert.ToInt32(tbKind.Text) : 0; buchung.idZimmer = idzimmer; buchung.eingegangenBuchung = DateTime.Now; //Verpflegung int verpflegung = cbVerpf.SelectedIndex; string stringVerpf = ""; switch (verpflegung) { case 0: stringVerpf = "bb"; break; case 1: stringVerpf = "hb"; break; case 2: stringVerpf = "fb"; break; case 3: stringVerpf = "nb"; break; } buchung.board = stringVerpf; //zurück zu MainWindow mit zurückbutton hm.repBuchung.Create(buchung); //Seite wechseln NavigationService ns = NavigationService.GetNavigationService(this); ns.Navigate(new Uri("StartPage.xaml", UriKind.Relative)); } else { errLabel.Content = "Verfügbarkeit des Zimmertyp " + zimmerT.typBezeichnung + " ist 0 für diesen Zeitraum"; tbKind.Background = Brushes.Red; tbErw.Background = Brushes.Red; } } else { tbKind.Background = Brushes.Red; tbErw.Background = Brushes.Red; errLabel.Content = "Kein ZimmerTyp für diese Eingabe bekannt"; } } else { errLabel.Content = "Name, Von-Bis, Anzahl Erwachsene muss ausgefüllt sein!"; // MessageBoxResult result = MessageBox.Show("Bitte alle Felder ausfüllen!"); } }