BusinessLogic.Logic.Achievements.PunisherAchievement.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 revengedPlayerIds =
                DataContext
                    .GetQueryable<Nemesis>()
                    .Where(nem => nem.NemesisPlayerId == playerId
                                  && nem.NemesisPlayer.CurrentAndPriorNemeses.Any(
                                      min => min.NemesisPlayerId == nem.MinionPlayerId
                                             && min.DateCreated < nem.DateCreated))
                    .Select(nem => nem.MinionPlayerId)
                    .Distinct()
                    .ToList();

            result.RelatedEntities = revengedPlayerIds;
            result.PlayerProgress = revengedPlayerIds.Count;

            if (result.PlayerProgress < LevelThresholds[AchievementLevel.Bronze])
            {
                return result;
            }

            result.LevelAwarded = GetLevelAwarded(result.PlayerProgress);
            return result;
        }
    }