private void butPodglad_Click(object sender, RoutedEventArgs e) { try { //wstawienie nowych wartości samolotu PojemnikSamolot.il_rzedow = int.Parse(TextRzedy.Text.ToString()); PojemnikSamolot.il_siedzen_w_rzedzie = int.Parse(TextSiedzenia.Text.ToString()); PojemnikSamolot.szerokosc_buforowa_rzedow = int.Parse(TextBuforRzedy.Text.ToString()); PojemnikSamolot.szerokosc_buforowa_siedzen = int.Parse(TextBuforSiedzenia.Text.ToString()); PojemnikSamolot.max_il_miejsc = 0; if (PojemnikSamolot.il_siedzen_w_rzedzie < 10 || PojemnikSamolot.il_rzedow < 3 || PojemnikSamolot.szerokosc_buforowa_rzedow < 50 || PojemnikSamolot.szerokosc_buforowa_siedzen < 50) { MessageBox.Show("Z takimi danymi to nie zdziw się, że to będzie wyglądać jak helikopter"); } Samolot okno_samolotu = new Samolot(); okno_samolotu.Show(); this.Close(); } catch { MessageBox.Show("Wybierz jakieś wartości, nie można pozostawić niczego pustego"); } }
//***********-----------Przechodzenie pomiędzy tabami-----------***********\\ // przyciski "Dalej" private void ButtonNext_Click(object sender, RoutedEventArgs e) { PojemnikSamolot.newIndex = tcTicket.SelectedIndex + 1; // obsługa poszczególnych tabów switch (PojemnikSamolot.newIndex) { case 1: tcTicket.SelectedIndex = PojemnikSamolot.newIndex; break; case 2: tcTicket.SelectedIndex = PojemnikSamolot.newIndex; // tworzenie nowego Grid'a w zależności od wybranej ilości osób dorosłych i dzieci DynamicGrid GridNew = new DynamicGrid(); //tabSpecificInformation.IsEnabled = true; NewGrid.Children.Clear(); NewGrid.RowDefinitions.Clear(); NewGrid.ColumnDefinitions.Clear(); GridNew.MyGrid(NewGrid, HorizontalAlignment.Stretch, VerticalAlignment.Stretch, false, Colors.WhiteSmoke); // dynamiczne tworzenie rzędów siatki NewGrid.Background = new SolidColorBrush(Colors.Black); NewGrid.Background.Opacity = 0; for (int i = 0; i < 2 * (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)) + 1; i++) { if (i % 2 != 0) { GridNew.NewRow(NewGrid, 26, GridUnitType.Pixel); } else { GridNew.NewRow(NewGrid, 50, GridUnitType.Pixel); } } // dynamiczne tworzenie kolumn siatki for (int i = 0; i < 5; i++) { if (i % 2 != 0) { GridNew.NewColumn(NewGrid, 120, GridUnitType.Pixel); } else { GridNew.NewColumn(NewGrid, 70, GridUnitType.Pixel); } } int whichPerson = 1; int tmp; // uzupełnianie pól siatki (odpowiednich rzędów i kolumn) wybranymi obiektami for (Int16 i = 1; i < 2 * (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)) + 1; i += 2) { tmp = 0; for (Int16 j = 1; j <= 3; j += 2) { if (j == 1) { GridNew.NewLabel(NewGrid, Colors.White, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Center, "Pasażer" + whichPerson.ToString(), i, (Int16)(j - 1)); GridNew.NewLabel(NewGrid, Colors.White, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Imię:", (Int16)(i - 1), j); PojemnikSamolot.textBox[whichPerson - 1, tmp] = GridNew.NewTextBox(NewGrid, "", 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, i, j, true); // zabezpieczenie przed wpisywaniem znaków spoza alfabetu w przypadku podawania imienia pasażera PojemnikSamolot.textBox[whichPerson - 1, tmp].PreviewTextInput += (s, TextCompositionEventArgs) => { Regex regex = new Regex("[^a-zA-Z]+"); TextCompositionEventArgs.Handled = regex.IsMatch(TextCompositionEventArgs.Text); }; tmp = 1; } else { GridNew.NewLabel(NewGrid, Colors.White, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Nazwisko:", (Int16)(i - 1), j); PojemnikSamolot.textBox[whichPerson - 1, tmp] = GridNew.NewTextBox(NewGrid, "", 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, i, j, true); // zabezpieczenie przed wpisywaniem znaków spoza alfabetu w przypadku podawania nazwiska pasażera PojemnikSamolot.textBox[whichPerson - 1, tmp].PreviewTextInput += (s, TextCompositionEventArgs) => { Regex regex = new Regex("[^a-zA-Z]+"); TextCompositionEventArgs.Handled = regex.IsMatch(TextCompositionEventArgs.Text); }; } } whichPerson += 1; } break; case 3: bool dalej = true; // flaga pozwalająca na zabezpieczeniem przed kliknięciem przycisku "Dalej" bez podania imion i nazwisk pasażerów for (int i = 0; i < (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)); i++) { for (int j = 0; j < 2; j++) { if (PojemnikSamolot.textBox[i, j].Text == "") { dalej = false; } } } // jeśli wszystkie pola są zapełnione wyświetlany jest widok samolotu if (dalej == true) { tcTicket.SelectedIndex = PojemnikSamolot.newIndex; //wpisywanie do pojemnika miejsca wylotu i miejsca docelowego PojemnikSamolot.skad = cBoxFlyFrom.SelectedItem.ToString(); PojemnikSamolot.dokad = cboxFlyTo.SelectedItem.ToString(); //w zaleznosci od wybranych skad i dokad wybierany jest typ wyświetlanego samolotu try { if (ilosc_pobran > 0) { con.Close(); con.Open(); } using (MySqlCommand command = new MySqlCommand("SELECT ty.row_no,ty.place_per_row,ty.buffor_row,ty.buffor_place FROM types ty JOIN flyfit ft ON ty.name = ft.name WHERE ft.skad = '" + cBoxFlyFrom.SelectedItem.ToString() + "' AND ft.dokad = '" + cboxFlyTo.SelectedItem.ToString() + "'", con)) { MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { PojemnikSamolot.il_rzedow = reader.GetInt32(0); PojemnikSamolot.il_siedzen_w_rzedzie = reader.GetInt32(1); PojemnikSamolot.szerokosc_buforowa_rzedow = reader.GetInt32(2); PojemnikSamolot.szerokosc_buforowa_siedzen = reader.GetInt32(3); ilosc_pobran += 1; } } } catch (Exception ex) { MessageBox.Show("Błąd odczytu z bazy" + ex); } con.Close(); PojemnikSamolot.max_il_miejsc = (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)); Samolot widok_samolot = new Samolot(); widok_samolot.DataContext = this; widok_samolot.Show(); // w zależności od tego co wybrane zostało w combo boxie tutaj ustawiana jest zmienna if (cBoxClasses.SelectedValue.ToString() == "Premium") { PojemnikSamolot.klasa_samolot = 1; } else { PojemnikSamolot.klasa_samolot = 2; } } // w przeciwnym wypadku wyświetlany jest komunikat o błędzie else { MessageBox.Show("Wpisz imiona i nazwiska wszystkich pasażerów"); } break; case 4: // wypełnianie danych o zakupionym bilecie tcTicket.SelectedIndex = PojemnikSamolot.newIndex; butSaveTicket.IsEnabled = true; // włączenie możliwości zapisania biletu labFlyFrom.Content = cBoxFlyFrom.SelectedItem.ToString(); labFlyTo.Content = cboxFlyTo.SelectedItem.ToString(); labClass.Content = cBoxClasses.SelectedItem.ToString(); numberOfAdults.Content = tbAdults.Text; numberOfChildren.Content = tbChildren.Text; numberOfBabies.Content = tbBabies.Text; // przykładowe ceny biletów w klasie zwykłej if (cBoxClasses.SelectedItem.ToString() == "Zwykła") { adultsCost.Content = "100"; childrenCost.Content = "73"; babiesCost.Content = "20"; } // przykładowe ceny biletów w klasie premium else if (cBoxClasses.SelectedItem.ToString() == "Premium") { adultsCost.Content = "150"; childrenCost.Content = "110"; babiesCost.Content = "30"; } // zapełnienie elementów treścią w zależności od wybrania typu lotu // lot w jedną stronę if (rbOneWay.IsChecked == true) { labTypeOfTravel.Content = rbOneWay.Content; labDateOfDeparture.Content = dateOfDeparture.SelectedDate.Value.Date; labDateOfArrival.Content = "--.--.----"; adultsCostSum.Content = (int.Parse(adultsCost.Content.ToString()) * int.Parse(numberOfAdults.Content.ToString())).ToString(); childrenCostSum.Content = (int.Parse(childrenCost.Content.ToString()) * int.Parse(numberOfChildren.Content.ToString())).ToString(); babiesCostSum.Content = (int.Parse(babiesCost.Content.ToString()) * int.Parse(numberOfBabies.Content.ToString())).ToString(); } // lot w dwie strony else if (rbTwoWay.IsChecked == true) { labTypeOfTravel.Content = rbTwoWay.Content; labDateOfDeparture.Content = dateOfDeparture.SelectedDate.Value.Date; labDateOfArrival.Content = dateOfArrival.SelectedDate.Value.Date; adultsCostSum.Content = (2 * int.Parse(adultsCost.Content.ToString()) * int.Parse(numberOfAdults.Content.ToString())).ToString(); childrenCostSum.Content = (2 * int.Parse(childrenCost.Content.ToString()) * int.Parse(numberOfChildren.Content.ToString())).ToString(); babiesCostSum.Content = (2 * int.Parse(babiesCost.Content.ToString()) * int.Parse(numberOfBabies.Content.ToString())).ToString(); } Cost.Content = (int.Parse(adultsCostSum.Content.ToString()) + int.Parse(childrenCostSum.Content.ToString()) + int.Parse(babiesCostSum.Content.ToString())).ToString() + " zł"; // tworzenie dynamicznej siatki w celu wypisania danych pasażerów, oraz wybranych przez nich miejsc DynamicGrid SumGrid = new DynamicGrid(); SummaryGrid.Children.Clear(); SummaryGrid.RowDefinitions.Clear(); SummaryGrid.ColumnDefinitions.Clear(); SumGrid.MyGrid(SummaryGrid, HorizontalAlignment.Stretch, VerticalAlignment.Stretch, false, Colors.WhiteSmoke); for (int i = 0; i < 2 * (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)) + 1; i++) { if (i % 2 != 0) { SumGrid.NewRow(SummaryGrid, 26, GridUnitType.Pixel); SumGrid.NewRow(SummaryGrid, 26, GridUnitType.Pixel); SumGrid.NewRow(SummaryGrid, 26, GridUnitType.Pixel); } else { SumGrid.NewRow(SummaryGrid, 50, GridUnitType.Pixel); } } for (int i = 0; i < 5; i++) { if (i % 2 != 0) { SumGrid.NewColumn(SummaryGrid, 120, GridUnitType.Pixel); } else { SumGrid.NewColumn(SummaryGrid, 70, GridUnitType.Pixel); } } whichPerson = 1; for (Int16 i = 3; i < 4 * (Int16.Parse(tbAdults.Text) + Int16.Parse(tbChildren.Text)) + 1; i += 4) { tmp = 0; for (Int16 j = 1; j <= 3; j += 2) { if (j == 1) { TextBox txtBox = new TextBox(); SumGrid.NewLabel(SummaryGrid, Colors.Black, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Center, "Pasażer" + whichPerson.ToString(), (Int16)(i - 2), (Int16)(j - 1)); SumGrid.NewLabel(SummaryGrid, Colors.Black, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Imię:", (Int16)(i - 3), j); SumGrid.NewLabel(SummaryGrid, Colors.Black, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Rząd:", (Int16)(i - 1), j); txtBox = SumGrid.NewTextBox(SummaryGrid, PojemnikSamolot.textBox[whichPerson - 1, tmp].Text, 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, (Int16)(i - 2), j, false); txtBox = SumGrid.NewTextBox(SummaryGrid, PojemnikSamolot.informacja[whichPerson - 1].rzad.ToString(), 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, i, j, false); tmp = 1; } else { TextBox txtBox = new TextBox(); SumGrid.NewLabel(SummaryGrid, Colors.Black, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Miejsce:", (Int16)(i - 1), j); SumGrid.NewLabel(SummaryGrid, Colors.Black, 12, FontWeights.SemiBold, FontStyles.Normal, "Segoe UI", VerticalAlignment.Bottom, HorizontalAlignment.Left, "Nazwisko:", (Int16)(i - 3), j); txtBox = SumGrid.NewTextBox(SummaryGrid, PojemnikSamolot.textBox[whichPerson - 1, tmp].Text, 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, (Int16)(i - 2), j, false); txtBox = SumGrid.NewTextBox(SummaryGrid, PojemnikSamolot.informacja[whichPerson - 1].miejsce.ToString(), 12, FontWeights.SemiBold, FontStyles.Normal, VerticalAlignment.Center, Colors.Black, i, j, false); } } whichPerson += 1; } break; } }