private void populatePlayer2Combo() { var oldPlayer2 = cmbPlayer2.SelectedIndex != -1 ? cmbPlayer2.SelectedItem.ToString() : ""; PlayersComboList2.Clear(); if (cmbEventType.SelectedIndex == -1) { return; } var curEventKey = PlayByPlayEntry.EventTypes.Single(pair => pair.Value == cmbEventType.SelectedItem.ToString()).Key; if (curEventKey <= 0 || cmbPlayer1.SelectedIndex == -1) { PlayersComboList2 = new ObservableCollection <ComboBoxItemWithIsEnabled>(PlayersComboList); } else { var curPlayer = cmbPlayer1.SelectedItem as ComboBoxItemWithIsEnabled; if (curPlayer == null) { cmbPlayer2.ItemsSource = PlayersComboList2; return; } var curPlayerTeam = _bse.PBSList.Single(pbs => pbs.PlayerID == curPlayer.ID).TeamID; List <PlayerStats> list; if (PlayByPlayEntry.UseOpposingTeamAsPlayer2.Contains(curEventKey)) { if (curPlayerTeam == _t1ID) { PlayersComboList2.Add(new ComboBoxItemWithIsEnabled(txbHomeTeam.Text, false)); list = HomeActive.ToList(); } else { PlayersComboList2.Add(new ComboBoxItemWithIsEnabled(txbAwayTeam.Text, false)); list = AwayActive.ToList(); } } else { if (curPlayerTeam == _t1ID) { PlayersComboList2.Add(new ComboBoxItemWithIsEnabled(txbAwayTeam.Text, false)); list = curEventKey != 13 ? AwayActive.Where(ps => ps.ID != curPlayer.ID).ToList() : AwayActive.ToList(); } else { PlayersComboList2.Add(new ComboBoxItemWithIsEnabled(txbHomeTeam.Text, false)); list = curEventKey != 13 ? HomeActive.Where(ps => ps.ID != curPlayer.ID).ToList() : HomeActive.ToList(); } } list.ForEach(ps => PlayersComboList2.Add(new ComboBoxItemWithIsEnabled(ps.ToString(), true, ps.ID))); } cmbPlayer2.ItemsSource = PlayersComboList2; if (cmbPlayer2.ItemsSource.Cast <ComboBoxItemWithIsEnabled>().Any(o => o.Item == oldPlayer2)) { cmbPlayer2.SelectedItem = cmbPlayer2.ItemsSource.Cast <ComboBoxItemWithIsEnabled>().Single(o => o.Item == oldPlayer2); } }
private void btnHomeDoSubs_Click(object sender, RoutedEventArgs e) { var inCount = lstHomeSubs.SelectedItems.Count; var outCount = lstHomeActive.SelectedItems.Count; var activeCount = lstHomeActive.Items.Count; var diff = inCount - outCount; if (activeCount + diff != 5) { return; } var playersIn = lstHomeSubs.SelectedItems.Cast <PlayerStats>().ToList(); var playersOut = lstHomeActive.SelectedItems.Cast <PlayerStats>().ToList(); foreach (var player in playersIn) { HomeSubs.Remove(player); HomeActive.Add(player); } foreach (var player in playersOut) { HomeSubs.Add(player); HomeActive.Remove(player); } sortPlayerLists(); }
private void sortPlayerLists() { AwaySubs.Sort((ps1, ps2) => String.Compare(ps1.FullName, ps2.FullName, StringComparison.CurrentCultureIgnoreCase)); AwayActive.Sort((ps1, ps2) => String.Compare(ps1.FullName, ps2.FullName, StringComparison.CurrentCultureIgnoreCase)); HomeSubs.Sort((ps1, ps2) => String.Compare(ps1.FullName, ps2.FullName, StringComparison.CurrentCultureIgnoreCase)); HomeActive.Sort((ps1, ps2) => String.Compare(ps1.FullName, ps2.FullName, StringComparison.CurrentCultureIgnoreCase)); PlayersComboList.Clear(); PlayersComboList.Add(new ComboBoxItemWithIsEnabled(txbAwayTeam.Text, false)); AwayActive.ToList().ForEach(ps => PlayersComboList.Add(new ComboBoxItemWithIsEnabled(ps.ToString(), true, ps.ID))); PlayersComboList.Add(new ComboBoxItemWithIsEnabled(txbHomeTeam.Text, false)); HomeActive.ToList().ForEach(ps => PlayersComboList.Add(new ComboBoxItemWithIsEnabled(ps.ToString(), true, ps.ID))); populatePlayer2Combo(); }
private PlayByPlayEntry createPlayByPlayEntryFromCurrent() { var curPlayer = cmbPlayer1.SelectedItem as ComboBoxItemWithIsEnabled; var curPlayerTeam = _bse.PBSList.Single(pbs => pbs.PlayerID == curPlayer.ID).TeamID; var teamName = _tst[curPlayerTeam].DisplayName; var play = new PlayByPlayEntry { DisplayPlayer1 = cmbPlayer1.SelectedItem.ToString(), DisplayPlayer2 = cmbPlayer2.SelectedIndex != -1 ? cmbPlayer2.SelectedItem.ToString() : "", DisplayTeam = teamName, EventDesc = txtEventDesc.IsEnabled ? txtEventDesc.Text : "", EventType = PlayByPlayEntry.EventTypes.Single(item => item.Value == cmbEventType.SelectedItem.ToString()).Key, GameID = _bse.BS.ID, Location = grdShotEvent.IsEnabled ? -2 : PlayByPlayEntry.EventLocations.Single(item => item.Value == cmbLocationShotDistance.SelectedItem.ToString()) .Key, LocationDesc = txtLocationDesc.IsEnabled ? txtLocationDesc.Text : "", Player1ID = curPlayer.ID, Player2ID = (cmbPlayer2.IsEnabled && cmbPlayer2.SelectedIndex != -1) ? (cmbPlayer2.SelectedItem as ComboBoxItemWithIsEnabled).ID : -1, T1PTS = Convert.ToInt32(AwayPoints), T2PTS = Convert.ToInt32(HomePoints), Team1PlayerIDs = AwayActive.Select(ps => ps.ID).ToList(), Team2PlayerIDs = HomeActive.Select(ps => ps.ID).ToList(), ShotEntry = grdShotEvent.IsEnabled ? new ShotEntry( ShotEntry.ShotDistances.Single(item => item.Value == cmbLocationShotDistance.SelectedItem.ToString()).Key, ShotEntry.ShotOrigins.Single(item => item.Value == cmbShotOrigin.SelectedItem.ToString()).Key, ShotEntry.ShotTypes.Single(item => item.Value == cmbShotType.SelectedItem.ToString()).Key, chkShotIsMade.IsChecked == true, chkShotIsAssisted.IsChecked == true) : null, TimeLeft = _timeLeft, ShotClockLeft = _shotClock, Quarter = CurrentPeriod }; return(play); }
private void btnEdit_Click(object sender, RoutedEventArgs e) { if (dgEvents.SelectedIndex == -1) { return; } if (btnEdit.Content.ToString() == "Edit") { var selectedPlay = dgEvents.SelectedItem as PlayByPlayEntry; dgEvents.IsEnabled = false; btnSave.IsEnabled = false; btnCancel.IsEnabled = false; btnAdd.IsEnabled = false; btnDelete.IsEnabled = false; _shotClockTimer.Stop(); _timeLeftTimer.Stop(); _savedTimeLeft = _timeLeft; _savedShotClock = _shotClock; _savedAwayActive = AwayActive.ToList(); _savedAwaySubs = AwaySubs.ToList(); _savedHomeActive = HomeActive.ToList(); _savedHomeSubs = HomeSubs.ToList(); _savedAwayPoints = Convert.ToInt32(AwayPoints); _savedHomePoints = Convert.ToInt32(HomePoints); _savedPeriod = CurrentPeriod; _timeLeft = selectedPlay.TimeLeft; updateTimeLeftIndication(_timeLeft); _shotClock = selectedPlay.ShotClockLeft; updateShotClockIndication(_shotClock); AwayActive = new ObservableCollection <PlayerStats>(selectedPlay.Team1PlayerIDs.Select(id => _pst[id]).ToList()); AwaySubs = new ObservableCollection <PlayerStats>( _bse.PBSList.Where(pbs => pbs.TeamID == _t1ID && !selectedPlay.Team1PlayerIDs.Contains(pbs.PlayerID)) .Select(pbs => _pst[pbs.PlayerID]) .ToList()); HomeActive = new ObservableCollection <PlayerStats>(selectedPlay.Team2PlayerIDs.Select(id => _pst[id]).ToList()); HomeSubs = new ObservableCollection <PlayerStats>( _bse.PBSList.Where(pbs => pbs.TeamID == _t2ID && !selectedPlay.Team2PlayerIDs.Contains(pbs.PlayerID)) .Select(pbs => _pst[pbs.PlayerID]) .ToList()); lstAwayActive.ItemsSource = AwayActive; lstAwaySubs.ItemsSource = AwaySubs; lstHomeActive.ItemsSource = HomeActive; lstHomeSubs.ItemsSource = HomeSubs; sortPlayerLists(); cmbEventType.SelectedItem = PlayByPlayEntry.EventTypes[selectedPlay.EventType]; txtEventDesc.Text = selectedPlay.EventDesc; cmbPlayer1.SelectedItem = PlayersComboList.Single(item => item.ID == selectedPlay.Player1ID); cmbPlayer2.SelectedItem = selectedPlay.Player2ID != -1 ? PlayersComboList2.Single(item => item.ID == selectedPlay.Player2ID) : null; cmbLocationShotDistance.SelectedItem = selectedPlay.EventType != PlayByPlayEntry.ShotAttemptEventType ? PlayByPlayEntry.EventLocations[selectedPlay.Location] : ShotEntry.ShotDistances[selectedPlay.ShotEntry.Distance]; txtLocationDesc.Text = selectedPlay.LocationDesc; cmbShotOrigin.SelectedItem = selectedPlay.EventType == PlayByPlayEntry.ShotAttemptEventType ? ShotEntry.ShotOrigins[selectedPlay.ShotEntry.Origin] : null; cmbShotType.SelectedItem = selectedPlay.EventType == PlayByPlayEntry.ShotAttemptEventType ? ShotEntry.ShotTypes[selectedPlay.ShotEntry.Type] : null; chkShotIsMade.IsChecked = selectedPlay.EventType == PlayByPlayEntry.ShotAttemptEventType && selectedPlay.ShotEntry.IsMade; chkShotIsAssisted.IsChecked = selectedPlay.EventType == PlayByPlayEntry.ShotAttemptEventType && selectedPlay.ShotEntry.IsAssisted; AwayPoints = selectedPlay.T1PTS; HomePoints = selectedPlay.T2PTS; CurrentPeriod = selectedPlay.Quarter; btnEdit.Content = "Save"; } else { if (cmbEventType.SelectedIndex == -1 || cmbPlayer1.SelectedIndex == -1 || cmbLocationShotDistance.SelectedIndex == -1) { return; } if (grdShotEvent.IsEnabled && (cmbShotOrigin.SelectedIndex == -1 || cmbShotType.SelectedIndex == -1)) { return; } var play = createPlayByPlayEntryFromCurrent(); Plays.Remove(dgEvents.SelectedItem as PlayByPlayEntry); Plays.Add(play); Plays.Sort(new PlayByPlayEntryComparerAsc()); _timeLeft = _savedTimeLeft; updateTimeLeftIndication(_timeLeft); _shotClock = _savedShotClock; updateShotClockIndication(_shotClock); AwayActive = new ObservableCollection <PlayerStats>(_savedAwayActive); AwaySubs = new ObservableCollection <PlayerStats>(_savedAwaySubs); HomeActive = new ObservableCollection <PlayerStats>(_savedHomeActive); HomeSubs = new ObservableCollection <PlayerStats>(_savedHomeSubs); AwayPoints = _savedAwayPoints; HomePoints = _savedHomePoints; CurrentPeriod = _savedPeriod; lstAwayActive.ItemsSource = AwayActive; lstAwaySubs.ItemsSource = AwaySubs; lstHomeActive.ItemsSource = HomeActive; lstHomeSubs.ItemsSource = HomeSubs; sortPlayerLists(); dgEvents.IsEnabled = true; btnSave.IsEnabled = true; btnCancel.IsEnabled = true; btnAdd.IsEnabled = true; btnDelete.IsEnabled = true; btnEdit.Content = "Edit"; } }