internal virtual List<PlayerGameResult> MakePlayerGameResults(
SaveableGameBase savedGame,
int? boardGameGeekGameDefinitionId)
{
BoardGameGeekGameDefinition boardGameGeekGameDefinition = null;
if (boardGameGeekGameDefinitionId.HasValue)
{
boardGameGeekGameDefinition = _dataContext.FindById<BoardGameGeekGameDefinition>(boardGameGeekGameDefinitionId.Value);
}
var pointsDictionary = _pointsCalculator.CalculatePoints(savedGame.PlayerRanks, boardGameGeekGameDefinition);
var playerGameResults = savedGame.PlayerRanks
.Select(playerRank =>
{
var pointsScorecard = pointsDictionary[playerRank.PlayerId];
return new PlayerGameResult
{
PlayerId = playerRank.PlayerId,
GameRank = playerRank.GameRank,
NemeStatsPointsAwarded = pointsScorecard.BasePoints,
GameDurationBonusPoints = pointsScorecard.GameDurationBonusPoints,
GameWeightBonusPoints = pointsScorecard.GameWeightBonusPoints,
PointsScored = playerRank.PointsScored
};
})
.ToList();
return playerGameResults;
}