public override AchievementAwarded IsAwardedForThisPlayer(int playerId)
{
var result = new AchievementAwarded
{
AchievementId = Id
};
var categoryGames =
DataContext
.GetQueryable<PlayerGameResult>()
.Where(x => x.PlayerId == playerId
&& x.PlayedGame.GameDefinition.BoardGameGeekGameDefinition.Mechanics.Any(o => o.MechanicName == MechanicName))
.Select(x => x.PlayedGame.GameDefinitionId)
.Distinct()
.ToList();
result.PlayerProgress = categoryGames.Count;
result.RelatedEntities = categoryGames.ToList();
if (result.PlayerProgress < LevelThresholds[AchievementLevel.Bronze])
{
return result;
}
result.LevelAwarded = GetLevelAwarded(result.PlayerProgress);
return result;
}
}