public async Task <ActionResult <LobbyDTO> > GetByCode([FromQuery] GetLobbyByCodeQuery query) { var lobby = await _mediator.Send(query); var reconnect = lobby.Players.Find(player => player.Name == query.Player); var response = new LobbyDTO { Players = lobby.ActivePlayers?.Select(player => new PlayerDTO { Name = player.Name, Score = player.Score }).ToList(), RoundNumber = lobby.RoundNumber, GameState = lobby.GameState.DisplayName, CurrentStoryTeller = lobby.CurrentStoryTeller?.Name, StoryCard = lobby.CurrentStoryCard?.Id ?? 0, Story = lobby.CurrentStory, Cards = lobby.CurrentPlayedCards?.Select(card => card.Id).ToList(), Votes = lobby.CurrentVotes?.Select(vote => new VoteDTO { Card = vote.Card.Id, Player = vote.Player.Name }).ToList(), Hand = lobby.Deck.Hand(reconnect)?.Select(card => card.Id).ToList() }; return(response); }
public async Task <IActionResult> GetByCode([FromQuery] GetLobbyByCodeQuery query) { var lobby = await Mediator.Send(query); return(Ok(lobby)); }