private void ExecuteAction(Entities.Game game, Entities.Enums.Hubs.Actions action, IEnumerable<Entities.ActiveConnection> connections,
List<Entities.GamePlayer> users)
{
Entities.GamePlayer sendToPlayer = null;
foreach (Entities.ActiveConnection connection in connections)
{
sendToPlayer = users.FirstOrDefault(player => player.User.UserId == connection.User_UserId);
if (sendToPlayer != null)
{
if (action == Entities.Enums.Hubs.Actions.UpdateWaiting)
{
_hub.Clients.Client(connection.ActiveConnectionID)
.UpdateWaiting(Entities.Models.Helpers.WaitingHeader.Build(game, connection.User_UserId, GetPlayerType(connection)),
GetGameLobbyViewModel(connection, game));
}
else if (action == Entities.Enums.Hubs.Actions.UpdateGameView)
{
Entities.Models.Game.Board.GameBoard model = GetGameBoardModal(connection, game);
_hub.Clients.Client(connection.ActiveConnectionID)
.UpdateGameView(model, GetGameLobbyViewModel(connection, game));
}
else if (action == Entities.Enums.Hubs.Actions.UpdateLobby)
{
_hub.Clients.Client(connection.ActiveConnectionID)
.UpdateLobbyView(GetGameLobbyViewModel(connection, game));
}
else if (action == Entities.Enums.Hubs.Actions.CardPlayed)
{
Entities.Models.Game.Board.GameBoard model = new Entities.Models.Game.Board.GameBoard(game, connection.User_UserId, GetPlayerType(connection));
_hub.Clients.Client(connection.ActiveConnectionID)
.UpdateAnswers(model.AnswersViewModel, !model.ShowHand);
}
}
}
}