public async Task Consume(ConsumeContext <CreateGameDto> consumer) { var gameId = Guid.NewGuid(); await _context.Games.AddAsync(new Game { GameId = gameId, GameName = consumer.Message.GameName, GamePlayers = new List <Player> { new Player { PlayerId = Guid.NewGuid(), PlayerLives = 3, PlayerScore = 0, PlayerName = consumer.Message.PlayerName, IsActive = false, GameId = gameId } } }); await _context.SaveChangesAsync(); await _bus.Send <GameDto[]>(_context.Games.Include(c => c.GamePlayers).Select(o => new GameDto { GameName = o.GameName, Players = o.GamePlayers.Select(p => new PlayerDto { PlayerName = p.PlayerName, IsActive = p.IsActive, PlayerScore = p.PlayerScore, PlayerLives = p.PlayerLives }).ToArray() }).ToArray()); }
public async Task Consume(ConsumeContext <PlayerJoinedDto> context) { var gameToUpdate = await _context.Games.FirstOrDefaultAsync(o => o.GameName.Equals(context.Message.GameName, StringComparison.CurrentCultureIgnoreCase)); gameToUpdate.GamePlayers.Add(new Player { PlayerName = context.Message.PlayerName, PlayerScore = 0, PlayerLives = 3, IsActive = false }); await _context.SaveChangesAsync(); }