public virtual List<GameDefinitionSummary> GetGameDefinitionSummaries(List<int> gameDefinitionIds)
{
var dateRangeFilter = new BasicDateRangeFilter();
var gameDefinitionSummaries = _dataContext.GetQueryable<GameDefinition>()
.Where(gameDefinition => gameDefinitionIds.Contains(gameDefinition.Id))
.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 >= ((IDateRangeFilter)dateRangeFilter).FromDate
&& playedGame.DatePlayed <= ((IDateRangeFilter)dateRangeFilter).ToDate)
.ToList(),
Champion = gameDefinition.Champion,
ChampionId = gameDefinition.ChampionId,
PreviousChampion = gameDefinition.PreviousChampion,
PreviousChampionId = gameDefinition.PreviousChampionId,
DateCreated = gameDefinition.DateCreated,
BoardGameGeekGameDefinition = gameDefinition.BoardGameGeekGameDefinition
})
.ToList();
gameDefinitionSummaries.ForEach(x => x.BoardGameGeekInfo = x.BoardGameGeekGameDefinitionId.HasValue ?
_boardGameGeekGameDefinitionInfoRetriever.GetResults(x.BoardGameGeekGameDefinitionId.Value)
: null);
return gameDefinitionSummaries;
}