Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }