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

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

public GetAllGameDefinitions ( int gamingGroupId, IDateRangeFilter dateRangeFilter = null ) : IList
gamingGroupId int
dateRangeFilter IDateRangeFilter
Результат IList
        public virtual IList<GameDefinitionSummary> GetAllGameDefinitions(int gamingGroupId, IDateRangeFilter dateRangeFilter = null)
        {
            if (dateRangeFilter == null)
            {
                dateRangeFilter = new BasicDateRangeFilter();
            }

            var returnValue = _dataContext.GetQueryable<GameDefinition>()
                .Where(gameDefinition => gameDefinition.GamingGroupId == gamingGroupId && gameDefinition.Active)
                .Select(gameDefinition => new GameDefinitionSummary
                {
                    Active = gameDefinition.Active,
                    BoardGameGeekGameDefinitionId = gameDefinition.BoardGameGeekGameDefinitionId,
                    Name = gameDefinition.Name,
                    Description = gameDefinition.Description,
                    GamingGroupId = gameDefinition.GamingGroupId,
                    Id = gameDefinition.Id,
                    PlayedGames = gameDefinition.PlayedGames.Where(
                        playedGame => playedGame.DatePlayed >= dateRangeFilter.FromDate
                                      && playedGame.DatePlayed <= dateRangeFilter.ToDate)
                        .ToList(),
                    Champion = gameDefinition.Champion,
                    ChampionId = gameDefinition.ChampionId,
                    PreviousChampion = gameDefinition.PreviousChampion,
                    PreviousChampionId = gameDefinition.PreviousChampionId,
                    DateCreated = gameDefinition.DateCreated
                })
                  .OrderBy(game => game.Name)
                .ToList();

            AddPlayersToChampionData(returnValue);

            returnValue.ForEach(summary =>
            {
                summary.Champion = summary.Champion ?? new NullChampion();
                summary.PreviousChampion = summary.PreviousChampion ?? new NullChampion();
                summary.TotalNumberOfGamesPlayed = summary.PlayedGames.Count;
                if (summary.BoardGameGeekGameDefinitionId.HasValue)
                {
                    summary.BoardGameGeekInfo = _boardGameGeekGameDefinitionInfoRetriever.GetResults(summary.BoardGameGeekGameDefinitionId.Value);
                }
            });
            return returnValue;
        }

Usage Example

        public void SetUp()
        {
            using(NemeStatsDataContext dataContext = new NemeStatsDataContext())
            {
                var playerRepository = new EntityFrameworkPlayerRepository(dataContext);
                var cacheableGameDataRetriever = new BoardGameGeekGameDefinitionInfoRetriever(new DateUtilities(), new CacheService(), dataContext);

                retriever = new GameDefinitionRetriever(dataContext, playerRepository, cacheableGameDataRetriever);
                actualGameDefinitionSummaries = retriever.GetAllGameDefinitions(testUserWithDefaultGamingGroup.CurrentGamingGroupId);
            }
        }
All Usage Examples Of BusinessLogic.Logic.GameDefinitions.GameDefinitionRetriever::GetAllGameDefinitions