示例#1
0
        public IActionResult GetCurrentLobby([FromQuery] GetLobbyRequest getLobbyRequest)
        {
            if (!(HttpContext.User.Identity is ClaimsIdentity identity))
            {
                return(BadRequest());
            }

            var playerId = identity.FindFirst(JwtService.PlayerIdClaim).Value;

            if (playerId == null || !Guid.TryParse(playerId, out var playerGuid))
            {
                return(BadRequest());
            }

            var lobbyDto = _lobbyHandler.GetLobbyDto(getLobbyRequest.LobbyCode);

            if (lobbyDto == null || lobbyDto.Players.FirstOrDefault(player => player.Id == playerGuid) == null)
            {
                return(NotFound());
            }

            return(Ok(new
            {
                Lobby = lobbyDto
            }));
        }