public async Task <Result <AddPlayerResponse> > AddPlayerAsync(string gameId, string playerName) { var game = await _gameStore.GetAsync(gameId); if (game == null) { return(Result <AddPlayerResponse> .Failure("Unable to find game for id")); } var newPlayerId = AddPlayer(game, playerName); //var player = new Player(); //var newPlayerId = Guid.NewGuid().ToString(); //player.Id = newPlayerId; //player.Name = playerName; //player.CurrentCard = null; //player.PreviousCards = new List<Card>(); //game.Players.Add(player); var response = new AddPlayerResponse(); response.NewPlayerId = newPlayerId; response.Game = DtoMapper.ToDto(game, newPlayerId); return(Result <AddPlayerResponse> .Success(response)); }
public async Task <IActionResult> AddPlayer([FromBody] AddPlayerRequest request) { ServerSidePlayer player = new ServerSidePlayer(request.Name, request.AvatarUrl); _registry.AddPlayer(player); AddPlayerResponse response = new AddPlayerResponse { PlayerId = player.Id, LobbyId = player.Lobby.Id, }; await _hubContext.Clients.All.NewPlayer(new ServerSidePlayerOverview { Id = player.Id, Name = player.Name, AvatarUrl = player.AvatarUrl, }); return(base.Ok(response)); }