Beispiel #1
0
        public async Task <StartGameResponseViewItem> Start(string userId, int countBots)
        {
            IEnumerable <Card> deck = await _cardRepository.GetAll();

            _deck = new Deck(deck);
            var game = new Game();
            await _gameRepository.Add(game);

            _cache.SaveToCache(game.Id, _deck);

            List <Player> playersList = await GetPlayers(userId, game.Id, countBots);

            await StartGame(userId, game.Id, playersList);

            Player user = await _playerRepository.Get(userId);

            int           cardLeft      = _deck.CardsLeft();
            List <Player> botPlayerList = await GetBotsFromGame(user.Id, game.Id);

            StartGameResponseViewItem response = await CreateStartView(user, game.Id, cardLeft, botPlayerList);

            return(response);
        }
        // Good

        private void SaveToCache(string gameId, Deck deck)
        {
            _cache.SaveToCache(gameId, deck);
        }