CalculatePoints() public method

public CalculatePoints ( IList playerRanks, BoardGameGeekGameDefinition bggGameDefinition ) : PointsScorecard>.Dictionary
playerRanks IList
bggGameDefinition BoardGameGeekGameDefinition
return PointsScorecard>.Dictionary
コード例 #1
0
        public void RecalculateAllPoints(IDataContext dataContext, int startPlayedGameId, int endPlayedGameId)
        {
            var allPlayedGames = (from PlayedGame playedGame in dataContext.GetQueryable <PlayedGame>()
                                  where playedGame.Id >= startPlayedGameId && playedGame.Id < endPlayedGameId
                                  select new
            {
                playedGame.Id,
                playedGame.GamingGroupId,
                playedGame.PlayerGameResults
            }).ToList();

            foreach (var playedGame in allPlayedGames)
            {
                var playerRanks = playedGame.PlayerGameResults.Select(x => new PlayerRank
                {
                    PlayerId = x.PlayerId,
                    GameRank = x.GameRank
                }).ToList();

                var newPoints = PointsCalculator.CalculatePoints(playerRanks);

                ApplicationUser applicationUserForThisGamingGroup = new ApplicationUser()
                {
                    CurrentGamingGroupId = playedGame.GamingGroupId
                };

                foreach (PlayerGameResult playerGameResult in playedGame.PlayerGameResults)
                {
                    playerGameResult.NemeStatsPointsAwarded = newPoints[playerGameResult.PlayerId];
                    dataContext.Save(playerGameResult, applicationUserForThisGamingGroup);
                }
            }
        }