BusinessLogic.Logic.GameDefinitions.GameDefinitionRetriever.GetTrendingGames C# (CSharp) Метод

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

public GetTrendingGames ( int maxNumberOfGames, int numberOfDaysOfTrendingGames ) : List
maxNumberOfGames int
numberOfDaysOfTrendingGames int
Результат List
        public List<TrendingGame> GetTrendingGames(int maxNumberOfGames, int numberOfDaysOfTrendingGames)
        {
            var startDate = DateTime.Now.Date.AddDays(-1 * numberOfDaysOfTrendingGames);
            return (from result in _dataContext.GetQueryable<BoardGameGeekGameDefinition>()
                    select new TrendingGame
                    {
                        BoardGameGeekGameDefinitionId = result.Id,
                        Name = result.Name,
                        GamesPlayed = result.GameDefinitions.SelectMany(x => x.PlayedGames.Where(playedGame => playedGame.DatePlayed >= startDate)).Count(),
                        ThumbnailImageUrl = result.Thumbnail,
                        GamingGroupsPlayingThisGame = result.GameDefinitions.Count(
                            gameDefinition => gameDefinition.PlayedGames.Any(playedGame => playedGame.DatePlayed >= startDate))
                    })
                    .OrderByDescending(x => x.GamingGroupsPlayingThisGame)
                    .ThenByDescending(x => x.GamesPlayed)
                    .Take(maxNumberOfGames)
                    .ToList();
        }