private void btnSaveToDatabase_Click(object sender, RoutedEventArgs e) { try { Pelaaja player = (Pelaaja)spPlayer.DataContext; if (player.id == 0) { btnNew_Click(this, null); return; } player.seura = cboTeam.SelectedValue.ToString(); if (HasDetailsErrors(player)) { return; // Tarkistetaan kenttien arvoja } ctx.SaveChanges(); ctx.Pelaajat.Load(); lstPlayers.DataContext = ctx.Pelaajat.OrderBy(p => p.seura).ThenBy(p => p.etunimi).ThenBy(p => p.sukunimi).ToList(); lstPlayers.SelectedIndex = lstPlayers.Items.IndexOf(player); lstPlayers.ScrollIntoView(lstPlayers.SelectedItem); lblInfo.Text = string.Format("Pelaajan {0} muutetut tiedot on tallennettu kantaan", player.Kokonimi); } catch (Exception ex) { lblInfo.Text = "Tietokantaan tallennus ei onnistunut: " + ex.Message; } }
private bool HasDetailsErrors(Pelaaja player) { bool errors = false; string message = ""; TextBox txt = null; if (string.IsNullOrWhiteSpace(player.etunimi)) { txt = txtFirstName; message = "etunimi puuttuu"; errors = true; } if (string.IsNullOrWhiteSpace(player.sukunimi)) { txt = txtLastName; message = "sukunimi puuttuu"; errors = true; } if (player.arvo < 0) { throw new Exception("siirtosumma ei voi olla negatiivinen!"); } if (errors) { MessageBox.Show(string.Format("Ei voi tallentaa koska {0}!", message)); txt.Focus(); } return(errors); }
private void btnDelete_Click(object sender, RoutedEventArgs e) { try { Pelaaja current = (Pelaaja)spPlayer.DataContext; MessageBoxResult result = MessageBox.Show( string.Format("Haluatko varmasti poistaa pelaajan {0} tiedot?", current.Kokonimi), "Poiston varmistus", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (result == MessageBoxResult.Yes) { ctx.Pelaajat.Remove(current); ctx.SaveChanges(); ctx.Pelaajat.Load(); lstPlayers.DataContext = ctx.Pelaajat.OrderBy(p => p.seura).ThenBy(p => p.etunimi).ThenBy(p => p.sukunimi).ToList(); lblInfo.Text = string.Format("Pelaaja {0} on poistettu", current.Kokonimi); } } catch (Exception ex) { lblInfo.Text = ex.Message; } }
private void btnNewPlayer_Click(object sender, RoutedEventArgs e) { try { if (!string.IsNullOrWhiteSpace(txtFirstname.Text) && !string.IsNullOrWhiteSpace(txtLastname.Text) && !string.IsNullOrWhiteSpace(txtPrice.Text) && cbTeam.SelectedItem != null) { if (Regex.IsMatch(txtFirstname.Text, @"^[a-zA-Z]+$") && Regex.IsMatch(txtLastname.Text, @"^[a-zA-Z]+$")) { Pelaaja pelaaja = new Pelaaja(txtFirstname.Text, txtLastname.Text, int.Parse(txtPrice.Text), cbTeam.SelectedValue.ToString()); if (pelaajat.Exists(Pelaaja => Pelaaja.Fullname == pelaaja.Fullname)) { pelaaja = null; tbStatus.Text = "Tila: Pelaaja on jo listassa!"; } else { pelaajat.Add(pelaaja); ApplyChanges(); tbStatus.Text = "Tila: Pelaajan luonti onnistui!"; } } else { tbStatus.Text = "Tila: Merkkijono on väärässä muodossa."; } } else { tbStatus.Text = "Tila: Jokin kenttä jäi tyhjäksi."; } } catch (Exception ex) { tbStatus.Text = "Tila: Merkkijono on väärässä muodossa."; } }
private void lstPlayers_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Jos pelaajan nimeä napsautetaan listboxissa, niin pelaajan kaikki tiedot kirjoitetaan vasemmalla oleviin tekstikenttiin tietojen muokkausta varten Pelaaja player = (Pelaaja)lstPlayers.SelectedItem; spPlayer.DataContext = player; cboTeam.SelectedValue = player.seura; lblInfo.Text = string.Format("Valittu pelaaja: {0}", player.Kokonimi); }
private void btnWritePlayers_Click(object sender, RoutedEventArgs e) { try { Pelaaja.WriteToFile(pelaajat); tbStatus.Text = "Tila: Pelaajat kirjoitettu tiedostoon."; } catch (Exception ex) { tbStatus.Text = "Tila: " + ex.ToString(); } }
private void btnReadPlayers_Click(object sender, RoutedEventArgs e) { try { var kaikki = pelaajat.Concat(Pelaaja.ReadFromFile()).ToList(); pelaajat = kaikki; listBox.ItemsSource = null; listBox.ItemsSource = pelaajat; tbStatus.Text = "Tila: Pelaajat haettu tiedostosta."; } catch (Exception ex) { tbStatus.Text = "Tila: Haku peruttu tai haussa tapahtui virhe."; } }
private void btnNewPlayer_Click(object sender, RoutedEventArgs e) { try { if (!string.IsNullOrWhiteSpace(txtFirstname.Text) && !string.IsNullOrWhiteSpace(txtLastname.Text) && !string.IsNullOrWhiteSpace(txtPrice.Text) && cbTeam.SelectedItem != null) { Pelaaja pelaaja = new Pelaaja(txtFirstname.Text, txtLastname.Text, int.Parse(txtPrice.Text), cbTeam.SelectedValue.ToString()); if (pelaajat.Exists(Pelaaja => Pelaaja.Fullname == pelaaja.Fullname)) { pelaaja = null; tbStatus.Text = "Tila: Pelaaja on jo listassa!"; } else { pelaajat.Add(pelaaja); ApplyChanges(); tbStatus.Text = "Tila: Pelaajan luonti onnistui!"; } } else { tbStatus.Text = "Tila: Jokin kenttä jäi tyhjäksi!"; } } catch (Exception ex) { tbStatus.Text = "Tila: " + ex.ToString(); } }
private void btnNew_Click(object sender, RoutedEventArgs e) { // Luodaan uusi Pelaaja-olio ensin kontextiin ja sitten tietokantaan Pelaaja newPlayer; if (btnNew.Content.ToString() == "Luo uusi pelaaja") { newPlayer = new Pelaaja(); spPlayer.DataContext = newPlayer; btnNew.Content = "Tallenna kantaan"; cboTeam.SelectedIndex = 0; txtFirstName.Focus(); lblInfo.Text = "Uuden pelaajan lisäys"; } else { try { newPlayer = (Pelaaja)spPlayer.DataContext; if (HasDetailsErrors(newPlayer)) { return; // Tarkistetaan kenttien arvoja } newPlayer.seura = cboTeam.SelectedValue.ToString(); ctx.Pelaajat.Add(newPlayer); ctx.SaveChanges(); ctx.Pelaajat.Load(); lstPlayers.DataContext = ctx.Pelaajat.OrderBy(p => p.seura).ThenBy(p => p.etunimi).ThenBy(p => p.sukunimi).ToList(); lstPlayers.SelectedIndex = lstPlayers.Items.IndexOf(newPlayer); lstPlayers.ScrollIntoView(lstPlayers.SelectedItem); btnNew.Content = "Luo uusi pelaaja"; lblInfo.Text = string.Format("Uusi pelaaja {0} lisätty kantaan", newPlayer.Kokonimi); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }