public override AchievementAwarded IsAwardedForThisPlayer(int playerId)
{
var result = new AchievementAwarded
{
AchievementId = Id
};
var totalTeamLosses =
DataContext
.GetQueryable<PlayedGame>()
.Where(x => x.PlayerGameResults.Any(player => player.PlayerId == playerId)
&& x.WinnerType == WinnerTypes.TeamLoss)
.Select(x => x.Id)
.ToList();
result.PlayerProgress = totalTeamLosses.Count;
result.RelatedEntities = totalTeamLosses.ToList();
if (result.PlayerProgress < LevelThresholds[AchievementLevel.Bronze])
{
return result;
}
result.LevelAwarded =
LevelThresholds.OrderByDescending(l => l.Value)
.FirstOrDefault(l => l.Value <= result.PlayerProgress)
.Key;
return result;
}
}