async Task <Abstractions.SearchResult <GameModel> > IGameDataService.GetGamesAsync(Abstractions.GameSearchFilter filter, int?userId, CancellationToken cancellationToken) { var result = await _gameRepository.FindGamesAsync( new Data.Abstractions.GameSearchFilter { GameId = filter.GameId, Type = filter.Type, }, cancellationToken : cancellationToken ); var results = new Abstractions.SearchResult <GameModel> { Count = result.TotalCount, Results = result.Results.Select(_gameMapper.Map).ToArray(), }; if (userId.HasValue) { foreach (var game in results.Results) { //TODO: Fix loop to no make multiple calls await PopulateGameUsersInternalAsync(game, cancellationToken : cancellationToken); } } return(results); }
async Task <Abstractions.SearchResult <StoreItemModel> > IStoreItemService.GetStoreItemsAsync(StoreItemSearchFilter filter, CancellationToken cancellationToken) { var result = await _storeItemRepository.FindStoreItemsAsync(cancellationToken : cancellationToken); var results = new Abstractions.SearchResult <StoreItemModel> { Count = result.Count, Results = result.Select(x => x.StoreItem).ToArray(), }; return(results); }
async Task <Abstractions.SearchResult <DeckModel> > IDeckService.GetDecksAsync(Abstractions.DeckSearchFilter filter, CancellationToken cancellationToken) { var decks = await _deckRepository.FindDecksAsync( new Data.Abstractions.DeckSearchFilter { Ids = filter.Ids?.ToArray(), Name = filter.Name, UserId = filter.UserId, }, cancellationToken : cancellationToken ); var results = decks.Select(_deckDataMapper.Map).ToArray(); var result = new Abstractions.SearchResult <DeckModel> { Count = decks.Count, Results = results, }; return(result); }