예제 #1
0
        private void CompleteTeamsStat(Match match, ref TeamStat team1Stat, ref TeamStat team2Stat)
        {
            if (match.GoalsTeam1 > match.GoalsTeam2)
            {
                team1Stat.Wins++;
                team2Stat.Loses++;
            }
            else if (match.GoalsTeam2 > match.GoalsTeam1)
            {
                team2Stat.Wins++;
                team1Stat.Loses++;
            }
            else
            {
                team1Stat.Draws++;
                team2Stat.Draws++;
            }

            team1Stat.Points = team1Stat.Wins * 3 + team1Stat.Draws;
            team1Stat.GamesPlayed++;
            team1Stat.GoalsFavor    += match.GoalsTeam1;
            team1Stat.GoalsAgainst  += match.GoalsTeam2;
            team1Stat.GoalDifference = team1Stat.GoalsFavor - team1Stat.GoalsAgainst;
            team1Stat.Effectiveness  = Math.Round(((decimal)team1Stat.Points / ((decimal)team1Stat.GamesPlayed * 3)) * 100, 2);

            team2Stat.Points = team2Stat.Wins * 3 + team2Stat.Draws;
            team2Stat.GamesPlayed++;
            team2Stat.GoalsFavor    += match.GoalsTeam2;
            team2Stat.GoalsAgainst  += match.GoalsTeam1;
            team2Stat.GoalDifference = team2Stat.GoalsFavor - team2Stat.GoalsAgainst;
            team2Stat.Effectiveness  = Math.Round(((decimal)team2Stat.Points / ((decimal)team2Stat.GamesPlayed * 3)) * 100, 2);
        }
예제 #2
0
        public void Update(TeamStat teamStat)
        {
            var teamStatModified = _mapper.Map <TeamStats>(teamStat);

            _ctx.TeamStats.Attach(teamStatModified);
            _ctx.Entry(teamStatModified).State = EntityState.Modified;
        }
예제 #3
0
 public void Setup()
 {
     ctx    = new SqlContext();
     engine = new TeamStatEngine(ctx);
     stat   = new TeamStat()
     {
         Id                  = 1,
         OpponentId          = 3,
         TeamId              = 2,
         ScheduleId          = 4,
         Assits              = 3,
         Blocks              = 6,
         DefensiveRebound    = 15,
         FGCompleted         = 35,
         FGPercentage        = 0.6,
         FGTaken             = 50,
         Fouls               = 15,
         FreeThrowPercentage = 0.33,
         FreeThrowsCompleted = 9,
         FreeThrowsTaken     = 3,
         OffensiveRebound    = 25,
         Steals              = 15,
         ThreeCompleted      = 30,
         ThreePercentage     = 0.33,
         ThreeTaken          = 10,
         TurnOvers           = 20
     };
 }
        public void TestTeamStatExists()
        {
            TeamStat stat = new TeamStat()
            {
                Id                  = 1,
                OpponentId          = 3,
                TeamId              = 2,
                ScheduleId          = 4,
                Assits              = 3,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 9,
                FreeThrowsTaken     = 3,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20
            };

            repo.Insert(stat);

            Assert.IsTrue(repo.Exists(stat));
        }
예제 #5
0
        public void TestSaveUpdate()
        {
            ctx.TeamStats.Add(stat);
            ctx.SaveChanges();

            TeamStat stat2 = new TeamStat()
            {
                Id                  = 1,
                OpponentId          = 3,
                TeamId              = 2,
                ScheduleId          = 4,
                Assits              = 20,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 9,
                FreeThrowsTaken     = 3,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20
            };

            engine.Save(stat2);
            Assert.IsNotNull(ctx.TeamStats.Where(c => c.Id == 1 && c.Assits == 20).FirstOrDefault());
            Assert.AreEqual(1, ctx.TeamStats.Count());
        }
예제 #6
0
        public async Task DeleteTeamStatAsync(TeamStat teamStat)
        {
            var query = await _wpbDataContext.TeamStats.FindAsync(teamStat.Id);

            _wpbDataContext.TeamStats.Remove(query);
            await _wpbDataContext.SaveChangesAsync();
        }
예제 #7
0
        public void TestExists()
        {
            ctx.TeamStats.Add(stat);
            ctx.SaveChanges();

            TeamStat stat2 = new TeamStat()
            {
                Id                  = 0,
                OpponentId          = 3,
                TeamId              = 2,
                ScheduleId          = 4,
                Assits              = 20,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 9,
                FreeThrowsTaken     = 3,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20
            };

            Assert.IsTrue(engine.Exists(stat2));
        }
예제 #8
0
        public async Task <List <TeamStat> > GetTeamStatsResultsAsync()
        {
            //  Get all the data sources for ranking data
            var rankingDataSource = await _wpbService.GetRankingDataSources();

            var statData = new List <TeamStat>();

            foreach (var result in rankingDataSource)
            {
                var rankStat = ParseDataSource.ParseRankingSource(result, result.ClassNameNode);
                foreach (var stat in rankStat)
                {
                    try
                    {
                        var team = await _wpbService.GetTeamByTeamName(stat.TeamName);

                        if (team != null)
                        {
                            var newStat = new TeamStat()
                            {
                                TeamName         = team.TeamName,
                                TeamId           = team.Id,
                                TeamCode         = team.TeamCode,
                                SubDivisionId    = team.SubDivisionId,
                                Position         = stat.Position,
                                GamesPlayed      = stat.GamesPlayed,
                                GamesWon         = stat.GamesWon,
                                GamesLost        = stat.GamesLost,
                                BasketsFor       = stat.BasketsFor,
                                BasketsAganist   = stat.BasketsAganist,
                                PointsDifference = stat.PointsDifference,
                                Points           = stat.Points,
                                WinPercentage    = StatisticsCalculator.WinPercentage(stat.GamesWon, stat.GamesPlayed).ToString(),
                                LossPercentage   = StatisticsCalculator.LossPercentage(stat.GamesLost, stat.GamesPlayed).ToString(),
                                BasketsPerGame   = StatisticsCalculator.BasketsPerGame(stat.BasketsFor, stat.GamesPlayed).ToString(),
                                WinLossPercent   = StatisticsCalculator.WinLossPercentage(stat.GamesWon, stat.GamesLost).ToString(),
                                WinsOver500      = StatisticsCalculator.WinsOver50(stat.GamesWon, stat.GamesLost).ToString(),
                                WPyth            = StatisticsCalculator.WPyth(stat.BasketsFor, stat.BasketsAganist).ToString(),
                            };
                            statData.Add(newStat);
                        }
                        else
                        {
                            throw new System.ArgumentException(
                                      "Detected null values in either team variable!");
                        }
                    }
                    catch (Exception err)
                    {
                        var msg = err.ToString();
                    }
                }
            }

            return(statData);
        }
        public void TestGetTeamStat()
        {
            TeamStat stat = new TeamStat()
            {
                Id                  = 1,
                OpponentId          = 3,
                TeamId              = 2,
                Assits              = 3,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 9,
                FreeThrowsTaken     = 3,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20,
                ScheduleId          = 4
            };

            repo.Insert(stat);

            TeamStat stat2 = new TeamStat()
            {
                Id                  = 2,
                OpponentId          = 5,
                TeamId              = 4,
                Assits              = 3,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 11,
                FreeThrowsTaken     = 6,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20,
                ScheduleId          = 2
            };

            repo.Insert(stat2);

            Assert.IsNotNull(repo.GetTeamStat(2));
        }
예제 #10
0
        public void TestUpdateTeamStat()
        {
            TeamStat stat = new TeamStat()
            {
                Id                  = 1,
                OpponentId          = 3,
                TeamId              = 2,
                Assits              = 3,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 9,
                FreeThrowsTaken     = 3,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20
            };

            repo.Insert(stat);

            TeamStat stat2 = new TeamStat()
            {
                Id                  = 1,
                OpponentId          = 3,
                TeamId              = 2,
                Assits              = 3,
                Blocks              = 6,
                DefensiveRebound    = 15,
                FGCompleted         = 35,
                FGPercentage        = 0.6,
                FGTaken             = 50,
                Fouls               = 15,
                FreeThrowPercentage = 0.33,
                FreeThrowsCompleted = 11,
                FreeThrowsTaken     = 6,
                OffensiveRebound    = 25,
                Steals              = 15,
                ThreeCompleted      = 30,
                ThreePercentage     = 0.33,
                ThreeTaken          = 10,
                TurnOvers           = 20
            };

            repo.Update(stat2);

            Assert.IsTrue(ctx.TeamStats.Any(c => c.Id == 1 && c.FreeThrowsCompleted == 11));
            Assert.AreEqual(1, ctx.TeamStats.Count());
        }
예제 #11
0
    public TeamStat CreateTeamStat(Team team)
    {
        GameObject    teamStatObj = (GameObject)UnityEngine.GameObject.Instantiate(Resources.Load("TeamStat"));
        RectTransform rt          = teamStatObj.GetComponent <RectTransform> ();

        rt.SetParent(transform);
        rt.anchoredPosition = new Vector3(20 + (teamStatObj.GetComponent <RectTransform>().rect.width + 5) * stats.Count, -20, 0);
        rt.localScale       = Vector3.one;

        TeamStat teamStat = teamStatObj.GetComponent <TeamStat> ();

        teamStat.team = team;
        stats.Add(team, teamStat);

        return(teamStat);
    }
예제 #12
0
        public bool CreateTeamStats(TeamStatCreate stats)
        {
            var TeamStats =
                new TeamStat()
            {
                CoachID                 = _userID,
                TeamID                  = stats.TeamID,
                YearOfSeason            = stats.YearOfSeason,
                GameNumber              = stats.GameNumber,
                PowerPlays              = stats.PowerPlays,
                PowerPlayGoals          = stats.PowerPlayGoals,
                PenaltyKills            = stats.PenaltyKills,
                PenaltyKillGoalsAgainst = stats.PenaltyKillGoalsAgainst,
                GoalsFor                = stats.GoalsFor,
                GoalsAgainst            = stats.GoalsAgainst
            };

            using (var db = new ApplicationDbContext())
            {
                db.TeamStats.Add(TeamStats);
                return(db.SaveChanges() == 1);
            }
        }
예제 #13
0
 public async Task Update(TeamStat teamStat)
 {
     _teamStatRepository.Update(teamStat);
     await _teamStatRepository.SaveChanges();
 }
예제 #14
0
        public async Task Add(TeamStat teamStat)
        {
            await _teamStatRepository.Add(teamStat);

            await _teamStatRepository.SaveChanges();
        }
예제 #15
0
 public async Task CreateTeamStatAsync(TeamStat stat)
 {
     _wpbDataContext.TeamStats.Add(stat);
     await _wpbDataContext.SaveChangesAsync();
 }
예제 #16
0
 public async Task Add(TeamStat teamStat)
 {
     var teamStatToAdd = _mapper.Map <TeamStats>(teamStat);
     await _ctx.TeamStats.AddAsync(teamStatToAdd);
 }
 public void Delete(TeamStat teamStat)
 {
     base.Delete(teamStat);
 }
 public TeamStat Update(TeamStat teamStat)
 {
     return(base.Update(teamStat));
 }
 public TeamStat Insert(TeamStat teamStat)
 {
     return(Add(teamStat));
 }
        public bool Exists(TeamStat teamStat)
        {
            Expression <Func <TeamStat, bool> > doesExist = c => c.TeamId == teamStat.TeamId && c.ScheduleId == teamStat.ScheduleId;

            return(Query(doesExist).Count() > 0);
        }