Exemplo n.º 1
0
        public async Task <Game> CreateGameAsync(string keyword = "")
        {
            var newGame = await _context.Games.AddAsync(new Game()
            {
                Keyword = keyword
            });

            await _context.DrawSource.AddRangeAsync(BingoGenerator.GenerateDrawSource(newGame.Entity.Id));

            await _context.SaveChangesAsync();

            return(newGame.Entity);
        }
Exemplo n.º 2
0
        public async Task <int> AddCardAsync(Game game, string keyword)
        {
            if (game == null)
            {
                throw new ArgumentNullException(nameof(game));
            }
            if (!string.IsNullOrEmpty(game.Keyword) && game.Keyword != keyword)
            {
                throw new InvalidKeywordException();
            }

            var card = await _context.Cards.AddAsync(new Card()
            {
                GameId = game.Id
            });

            var opendNumbers = game.DrawSource.Take(game.DrawCount).Select(d => d.Number);
            await _context.CardCells.AddRangeAsync(BingoGenerator.GenerateCardCells(card.Entity.Id, opendNumbers));

            await _context.SaveChangesAsync();

            return(card.Entity.Id);
        }