ArmedCards.BusinessLogic.AppServices.Hubs.SendMessage.ExecuteAction C# (CSharp) Method

ExecuteAction() private method

private ExecuteAction ( Entities game, Entities action, IEnumerable connections, List users ) : void
game Entities
action Entities
connections IEnumerable
users List
return void
        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);
                    }
                }
            }
        }