public override AchievementAwarded IsAwardedForThisPlayer(int playerId)
        {
            var result = new AchievementAwarded
            {
                AchievementId = Id
            };

            var allWeightedGames =
                DataContext
                .GetQueryable <PlayerGameResult>()
                .Where(x => x.PlayerId == playerId)
                .GroupBy(x => new {
                // World's best change
                WeightTier = WeightTierCalculator.GetTheRealWeightTier(x.PlayedGame.GameDefinition.BoardGameGeekGameDefinition.AverageWeight)
            })
                .Select(group => new { group.Key, Count = group.Count() })
                .ToList();

            var noUnknownGames =
                (from item in allWeightedGames
                 where item.Key.WeightTier != WeightTierEnum.Unknown
                 select item).ToList();


            if (noUnknownGames.Count == 5)
            {
                result.PlayerProgress = noUnknownGames.Min(p => p.Count);
            }
            else
            {
                return(result);
            }

            result.LevelAwarded = GetLevelAwarded(result.PlayerProgress);

            return(result);
        }