Пример #1
0
        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);
        }
Пример #2
0
        public async Task <IActionResult> GetByCode([FromQuery] GetLobbyByCodeQuery query)
        {
            var lobby = await Mediator.Send(query);

            return(Ok(lobby));
        }