ArmedCards.BusinessLogic.AppServices.Hubs.SendMessage.Execute C# (CSharp) Метод

Execute() приватный Метод

private Execute ( Entities game, Entities action, System.Boolean sendToSpectators, Int32 excludedPlayerId = null ) : Entities.ActiveConnection
game Entities
action Entities
sendToSpectators System.Boolean
excludedPlayerId System.Int32
Результат Entities.ActiveConnection
        private Entities.ActiveConnection Execute(Entities.Game game, Entities.Enums.Hubs.Actions action, Boolean sendToSpectators, 
                                                    Int32? excludedPlayerId = null)
        {
            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();
            filter.GroupName = String.Format("Game_{0}", game.GameID);

            List<Entities.ActiveConnection> connections = _selectActiveConnection.Execute(filter);

            Entities.ActiveConnection excludedConnection = null;

            if(excludedPlayerId.HasValue)
            {
                excludedConnection = connections.DefaultIfEmpty(null).FirstOrDefault(x => x.User_UserId == excludedPlayerId);
            }

            ExecuteAction(game, action, connections.Where(x => x.ConnectionType == Entities.Enums.ConnectionType.GamePlayer), game.Players);

            if (sendToSpectators)
            {
                ExecuteAction(game, action, connections.Where(x => x.ConnectionType == Entities.Enums.ConnectionType.GameSpectator), game.Spectators);
            }

            return excludedConnection;
        }