public override AchievementAwarded IsAwardedForThisPlayer(int playerId)
{
var result = new AchievementAwarded
{
AchievementId = Id
};
var allNickeledGameIds =
DataContext
.GetQueryable<PlayerGameResult>()
.Where(x => x.PlayerId == playerId)
.GroupBy(x => x.PlayedGame.GameDefinitionId)
.Select(group => new { group.Key, Count = group.Count() })
.Where(a => a.Count >= 5)
.ToList();
result.PlayerProgress = allNickeledGameIds.Count();
result.RelatedEntities = allNickeledGameIds.Select(y => y.Key).ToList();
if (result.PlayerProgress < LevelThresholds[AchievementLevel.Bronze])
{
return result;
}
result.LevelAwarded = GetLevelAwarded(result.PlayerProgress);
return result;
}
}