BusinessLogic.Logic.Achievements.UnitedWeFallAchievement.IsAwardedForThisPlayer C# (CSharp) Метод

IsAwardedForThisPlayer() публичный Метод

public IsAwardedForThisPlayer ( int playerId ) : AchievementAwarded
playerId int
Результат AchievementAwarded
        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;
        }
    }