/// <summary>Calculates the metrics of a player's performance.</summary> /// <param name="bs">The game's box score from which to calculate the metrics.</param> public void CalcMetrics(TeamBoxScore bs) { var ts = new TeamStats(TeamID); var tsopp = new TeamStats(OppTeamID); var team1ID = bs.Team1ID; if (TeamID == team1ID) { TeamStats.AddTeamStatsFromBoxScore(bs, ref ts, ref tsopp); } else { TeamStats.AddTeamStatsFromBoxScore(bs, ref tsopp, ref ts); } var ps = new PlayerStats { ID = PlayerID }; ps.AddBoxScore(this, bs.IsPlayoff); ps.CalcMetrics(ts, tsopp, new TeamStats(-1), GmScOnly: true); GmSc = ps.Metrics["GmSc"]; GmScE = ps.Metrics["GmScE"]; }
/// <summary>Calculates the metrics of a player's performance.</summary> /// <param name="r"> /// The SQLite DataRow containing the player's box score. Should be the result of an INNER JOIN'ed query between /// PlayerResults and GameResults. /// </param> public void CalcMetrics(DataRow r) { var bs = new TeamBoxScore(r, null); var ts = new TeamStats(TeamID); var tsopp = new TeamStats(OppTeamID); var team1ID = ParseCell.GetInt32(r, "Team1ID"); var team2ID = ParseCell.GetInt32(r, "Team2ID"); if (TeamID == team1ID) { TeamStats.AddTeamStatsFromBoxScore(bs, ref ts, ref tsopp); } else { TeamStats.AddTeamStatsFromBoxScore(bs, ref tsopp, ref ts); } var ps = new PlayerStats { ID = PlayerID }; ps.AddBoxScore(this, bs.IsPlayoff); ps.CalcMetrics(ts, tsopp, new TeamStats(-1), GmScOnly: true); GmSc = ps.Metrics["GmSc"]; GmScE = ps.Metrics["GmScE"]; }
public void AddInfoFromTeamBoxScore(TeamBoxScore bs, Dictionary <int, TeamStats> tst) { bs.PrepareForDisplay(tst, TeamID); Result = bs.DisplayResult; TeamPTS = TeamID == bs.Team1ID ? bs.PTS1 : bs.PTS2; OppTeamID = TeamID == bs.Team1ID ? bs.Team2ID : bs.Team1ID; OppTeamPTS = TeamID == bs.Team1ID ? bs.PTS2 : bs.PTS1; Date = bs.GameDate.ToString().Split(' ')[0]; RealDate = bs.GameDate; DisplayTeam = tst[TeamID].DisplayName; DisplayOppTeam = tst[OppTeamID].DisplayName; }
/// <summary>Creates a team box score and all the required player box score instances using data from the downloaded DataSet.</summary> /// <param name="ds">The DataSet.</param> /// <param name="parts">The parts of the split date string.</param> /// <param name="bse">The resulting BoxScoreEntry.</param> /// <returns>0 if every required player was found in the database; otherwise, -1.</returns> private static int boxScoreFromDataSet(DataSet ds, string[] parts, out BoxScoreEntry bse) { var awayDT = ds.Tables[0]; var homeDT = ds.Tables[1]; var bs = new TeamBoxScore(ds, parts); bse = new BoxScoreEntry(bs) { PBSList = new List <PlayerBoxScore>() }; var result = 0; for (var i = 0; i < awayDT.Rows.Count - 1; i++) { if (i == 5) { continue; } var pbs = new PlayerBoxScore(awayDT.Rows[i], bs.Team1ID, bs.ID, (i < 5), MainWindow.PST); if (pbs.PlayerID == -1) { result = -1; continue; } bse.PBSList.Add(pbs); } for (var i = 0; i < homeDT.Rows.Count - 1; i++) { if (i == 5) { continue; } var pbs = new PlayerBoxScore(homeDT.Rows[i], bs.Team2ID, bs.ID, (i < 5), MainWindow.PST); if (pbs.PlayerID == -1) { result = -1; continue; } bse.PBSList.Add(pbs); } return(result); }
/// <summary> /// Initializes a new instance of the <see cref="BoxScoreEntry" /> class. /// </summary> /// <param name="bs">The TeamBoxScore to initialize with.</param> /// <param name="pbsList">The PlayerBoxScore list.</param> /// <param name="pbpeList"></param> public BoxScoreEntry(TeamBoxScore bs, List <PlayerBoxScore> pbsList, List <PlayByPlayEntry> pbpeList) : this(bs) { PBSList = pbsList; PBPEList = pbpeList; }
/// <summary> /// Initializes a new instance of the <see cref="BoxScoreEntry" /> class. /// </summary> /// <param name="bs">The TeamBoxScore to initialize with.</param> public BoxScoreEntry(TeamBoxScore bs) : this() { BS = bs; }
/// <summary>Calculates the box score entry in order to transfer the stats to the Box Score Window for further editing and saving.</summary> /// <returns></returns> private BoxScoreEntry calculateBoxScoreEntry() { var bs = new TeamBoxScore { REB1 = 0, AST1 = 0, STL1 = 0, TOS1 = 0, BLK1 = 0, FGM1 = 0, TPM1 = 0, FTM1 = 0, OREB1 = 0, FOUL1 = 0, PTS1 = 0, MINS1 = (ushort)MainWindow.GameLength, REB2 = 0, AST2 = 0, STL2 = 0, TOS2 = 0, BLK2 = 0, FGM2 = 0, TPM2 = 0, FTM2 = 0, OREB2 = 0, FOUL2 = 0, PTS2 = 0, MINS2 = (ushort)MainWindow.GameLength }; foreach (var pbs in _lpbsAwayList) { bs.PTS1 += pbs.PTS; bs.REB1 += pbs.REB; bs.AST1 += pbs.AST; bs.STL1 += pbs.STL; bs.TOS1 += pbs.TOS; bs.BLK1 += pbs.BLK; bs.FGM1 += pbs.FGM; bs.TPM1 += pbs.TPM; bs.FTM1 += pbs.FTM; bs.OREB1 += pbs.OREB; bs.FOUL1 += pbs.FOUL; } foreach (var pbs in _lpbsHomeList) { bs.PTS2 += pbs.PTS; bs.REB2 += pbs.REB; bs.AST2 += pbs.AST; bs.STL2 += pbs.STL; bs.TOS2 += pbs.TOS; bs.BLK2 += pbs.BLK; bs.FGM2 += pbs.FGM; bs.TPM2 += pbs.TPM; bs.FTM2 += pbs.FTM; bs.OREB2 += pbs.OREB; bs.FOUL2 += pbs.FOUL; } bs.Team1ID = Misc.GetTeamIDFromDisplayName(MainWindow.TST, cmbTeam1.SelectedItem.ToString()); bs.Team2ID = Misc.GetTeamIDFromDisplayName(MainWindow.TST, cmbTeam2.SelectedItem.ToString()); bs.GameDate = DateTime.Today; bs.SeasonNum = MainWindow.CurSeason; bs.Done = false; var bse = new BoxScoreEntry(bs) { PBSList = new List <PlayerBoxScore>() }; foreach (var lpbs in _lpbsAwayList) { lpbs.TeamID = bs.Team1ID; bse.PBSList.Add(lpbs); } foreach (var lpbs in _lpbsHomeList) { lpbs.TeamID = bs.Team2ID; bse.PBSList.Add(lpbs); } /* * * foreach (LivePlayerBoxScore lpbs in _lpbsAwayList) * { * var pbs = new PlayerBoxScore(lpbs) {TeamID = bs.Team1ID}; * bse.PBSList.Add(pbs); * } * foreach (LivePlayerBoxScore lpbs in _lpbsHomeList) * { * var pbs = new PlayerBoxScore(lpbs) {TeamID = bs.Team2ID}; * bse.PBSList.Add(pbs); * } */ bse.Team1Display = cmbTeam1.SelectedItem.ToString(); bse.Team2Display = cmbTeam2.SelectedItem.ToString(); return(bse); }