/// <summary>Handles the Click event of the btnRemove control. Allows the user to remove an item.</summary> /// <param name="sender">The source of the event.</param> /// <param name="e"> /// The <see cref="RoutedEventArgs" /> instance containing the event data. /// </param> private void btnRemove_Click(object sender, RoutedEventArgs e) { if (lstData.SelectedIndex == -1) { return; } var conf = (Conference)lstData.SelectedItem; var r = MessageBox.Show( "Are you sure you want to delete the " + conf.Name + " conference?", "NBA Stats Tracker", MessageBoxButton.YesNo, MessageBoxImage.Question); if (r == MessageBoxResult.No) { return; } var db = new SQLiteDatabase(MainWindow.CurrentDB); MainWindow.Conferences.Remove(conf); db.Delete("Conferences", "ID = " + conf.ID); MainWindow.Divisions.RemoveAll(division => division.ConferenceID == conf.ID); db.Delete("Divisions", "Conference = " + conf.ID); if (MainWindow.Conferences.Count == 0) { MainWindow.Conferences.Add(new Conference { ID = 0, Name = "League" }); db.Insert("Conferences", new Dictionary <string, string> { { "ID", "0" }, { "Name", "League" } }); MainWindow.Divisions.Add(new Division { ID = 0, Name = "League", ConferenceID = 0 }); db.Insert("Divisions", new Dictionary <string, string> { { "ID", "0" }, { "Name", "League" }, { "Conference", "0" } }); } lstData.ItemsSource = null; lstData.ItemsSource = MainWindow.Conferences; TeamStats.CheckForInvalidDivisions(); }
/// <summary> /// Handles the Click event of the btnOK control. The conference is renamed, the divisions are deleted and recreated, and if any /// teams are left in division IDs that no longer exist, they get reassigned. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e"> /// The <see cref="RoutedEventArgs" /> instance containing the event data. /// </param> private void btnOK_Click(object sender, RoutedEventArgs e) { var db = new SQLiteDatabase(MainWindow.CurrentDB); if (String.IsNullOrWhiteSpace(txtName.Text)) { txtName.Text = "League"; } MainWindow.Conferences.Single(conference => conference.ID == _curConf.ID).Name = txtName.Text; db.Update("Conferences", new Dictionary <string, string> { { "Name", txtName.Text } }, "ID = " + _curConf.ID); MainWindow.Divisions.RemoveAll(division => division.ConferenceID == _curConf.ID); db.Delete("Divisions", "Conference = " + _curConf.ID); var usedIDs = new List <int>(); db.GetDataTable("SELECT ID FROM Divisions") .Rows.Cast <DataRow>() .ToList() .ForEach(row => usedIDs.Add(ParseCell.GetInt32(row, "ID"))); var list = Tools.SplitLinesToList(txtDivisions.Text, false); foreach (var newDiv in list) { var newName = newDiv.Replace(':', '-'); var i = 0; while (usedIDs.Contains(i)) { i++; } MainWindow.Divisions.Add(new Division { ID = i, Name = newName, ConferenceID = _curConf.ID }); usedIDs.Add(i); } if (MainWindow.Divisions.Any(division => division.ConferenceID == _curConf.ID) == false) { var i = 0; while (usedIDs.Contains(i)) { i++; } MainWindow.Divisions.Add(new Division { ID = i, Name = txtName.Text, ConferenceID = _curConf.ID }); usedIDs.Add(i); } foreach (var div in MainWindow.Divisions.Where(division => division.ConferenceID == _curConf.ID)) { db.Insert( "Divisions", new Dictionary <string, string> { { "ID", div.ID.ToString() }, { "Name", div.Name }, { "Conference", div.ConferenceID.ToString() } }); } TeamStats.CheckForInvalidDivisions(); ListWindow.MustUpdate = true; Close(); }