/// <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;
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
 /// <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;
 }
Пример #6
0
 /// <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;
 }
Пример #7
0
        /// <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);
        }