BusinessLogic.Logic.Players.PlayerRetriever.PopulateNemePointsSummary C# (CSharp) Метод

PopulateNemePointsSummary() приватный Метод

private PopulateNemePointsSummary ( int gamingGroupId, List playersWithNemesis, IDateRangeFilter dateRangeFilter ) : void
gamingGroupId int
playersWithNemesis List
dateRangeFilter IDateRangeFilter
Результат void
        internal virtual void PopulateNemePointsSummary(int gamingGroupId, List<PlayerWithNemesis> playersWithNemesis, IDateRangeFilter dateRangeFilter)
        {
            var nemePointsDictionary = (from playerGameResult in dataContext.GetQueryable<PlayerGameResult>()
                                        where playerGameResult.PlayedGame.GamingGroupId == gamingGroupId
                                        && playerGameResult.PlayedGame.DatePlayed >= dateRangeFilter.FromDate
                                        && playerGameResult.PlayedGame.DatePlayed <= dateRangeFilter.ToDate
                                        group playerGameResult by playerGameResult.PlayerId
                                        into groupedResults
                                        select
                                            new
                                            {
                                                BasePoints = groupedResults.Sum(x => x.NemeStatsPointsAwarded),
                                                GameDurationBonusPoints = groupedResults.Sum(x => x.GameDurationBonusPoints),
                                                WeightBonusPoints = groupedResults.Sum(x => x.GameWeightBonusPoints),
                                                PlayerId = groupedResults.Key
                                            }).ToDictionary(key => key.PlayerId, value => new NemePointsSummary(value.BasePoints, value.GameDurationBonusPoints, value.WeightBonusPoints));

            foreach (var player in playersWithNemesis)
            {
                player.NemePointsSummary = nemePointsDictionary.ContainsKey(player.PlayerId) ? nemePointsDictionary[player.PlayerId] : new NemePointsSummary(0, 0, 0);
            }
        }