Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }