Exemplo n.º 1
0
        /// <summary>
        /// Alert the users a vote to kick has completed
        /// </summary>
        /// <param name="gameID">The game ID</param>
        /// <param name="kickedUser">The user that was being voted on</param>
        /// <param name="votesToKick">The number of votes to kick</param>
        /// <param name="votesNotToKick">The number votes not to kick</param>
        /// <param name="isKicked">Was the user kicked based on the votes</param>
        public void VoteComplete(Int32 gameID, Entities.User kickedUser, Int32 votesToKick, Int32 votesNotToKick, Boolean isKicked)
        {
            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();
            filter.GroupName = String.Format("Game_{0}", gameID);

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

            foreach (Entities.ActiveConnection connection in connections)
            {
                String message;
                String title = "Kick Player Results";

                String userSpan = String.Format("<span class='{0}'>{1}</span>",
                                                "loggedIn",
                                                String.Format("<img src='{0}' /> {1}", kickedUser.PictureUrl, kickedUser.DisplayName));

                if (isKicked)
                {
                    message = "{0} was kicked. <br /> Votes To Kick: {1} <br/> Votes To Stay: {2}";
                }
                else
                {
                    message = "{0} was not kicked. <br /> Votes To Kick: {1} <br/> Votes To Stay: {2}";
                }

                _hub.Clients.Client(connection.ActiveConnectionID)
                .VoteToKickResults(String.Format(message, userSpan, votesToKick, votesNotToKick),
                                   title,
                                   (isKicked && kickedUser.UserId == connection.User_UserId),
                                   kickedUser.UserId);
            }
        }
Exemplo n.º 2
0
        private List <Entities.ActiveConnection> GetConnections(Int32 gameID, List <Int32> exclude)
        {
            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();
            filter.GroupName    = String.Format("Game_{0}", gameID);
            filter.ExcludeUsers = exclude;

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

            return(connections);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Update the game view when the commander has selected the winner of the round
        /// </summary>
        /// <param name="game">The game to update</param>
        /// <param name="round">The game's current round</param>
        /// <param name="sendToSpectators">Should this update go to spectators</param>
        public void SendWinnerSelected(Entities.Game game, Entities.GameRound round, Boolean sendToSpectators)
        {
            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);

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

            if (sendToSpectators)
            {
                SendWinnerSelected(game, round, connections.Where(x => x.ConnectionType == Entities.Enums.ConnectionType.GameSpectator), game.Spectators);
            }
        }
Exemplo n.º 4
0
        private List <Entities.ActiveConnection> GetConnections(String groupName, Entities.Enums.ConnectionType connectionType)
        {
            AS.ActiveConnection.Base.ISelect _selectConnections = BusinessLogic.UnityConfig.Container.Resolve <AS.ActiveConnection.Base.ISelect>();

            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();

            if (groupName != GLOBAL)
            {
                filter.GroupName = groupName;
            }

            filter.ConnectionType = connectionType;

            List <Entities.ActiveConnection> connections = _selectConnections.Execute(filter).GroupBy(con => con.User_UserId)
                                                           .Select(con2 => con2.First())
                                                           .ToList();

            return(connections);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Alert the users that the round has been lost because the commander has left
        /// </summary>
        /// <param name="game">The game</param>
        /// <param name="commanderName">The commander's name</param>
        public void CommanderLeft(Entities.Game game, String commanderName)
        {
            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.GamePlayer sendToPlayer = null;

            foreach (Entities.ActiveConnection connection in connections)
            {
                sendToPlayer = game.Players.FirstOrDefault(player => player.User.UserId == connection.User_UserId);

                if (sendToPlayer != null)
                {
                    Entities.Models.Game.Board.GameBoard model = GetGameBoardModal(connection, game);

                    _hub.Clients.Client(connection.ActiveConnectionID)
                    .CommanderLeft(model, GetGameLobbyViewModel(connection, game), commanderName, game.IsWaiting());
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Alert the users that the round has been lost because the commander has left
        /// </summary>
        /// <param name="game">The game</param>
        /// <param name="commanderName">The commander's name</param>
        public void CommanderLeft(Entities.Game game, String commanderName)
        {
            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.GamePlayer sendToPlayer = null;

            foreach (Entities.ActiveConnection connection in connections)
            {
                sendToPlayer = game.Players.FirstOrDefault(player => player.User.UserId == connection.User_UserId);

                if (sendToPlayer != null)
                {
                    Entities.Models.Game.Board.GameBoard model = GetGameBoardModal(connection, game);

                    _hub.Clients.Client(connection.ActiveConnectionID)
                                       .CommanderLeft(model, GetGameLobbyViewModel(connection, game), commanderName, game.IsWaiting());
                }
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Return all active connections that match the filter
        /// </summary>
        /// <param name="filter">The filter used to select active connections</param>
        /// <returns>A list of active connections</returns>
        public List <Entities.ActiveConnection> Execute(Entities.Filters.ActiveConnection.SelectAll filter)
        {
            List <Entities.ActiveConnection> activeConnections = new List <Entities.ActiveConnection>();

            using (DbCommand cmd = _db.GetStoredProcCommand("ActiveConnection_Select"))
            {
                if (!String.IsNullOrWhiteSpace(filter.GroupName))
                {
                    _db.AddInParameter(cmd, "@GroupName", DbType.String, filter.GroupName);
                }

                if (filter.ExcludeUsers != null && filter.ExcludeUsers.Count > 0)
                {
                    _db.AddInParameter(cmd, "@ExcludeUserIds", DbType.Xml, filter.ExcludeUsers.ConvertCollectionToXML());
                }

                if (filter.ConnectionType > 0)
                {
                    _db.AddInParameter(cmd, "@ConnectionType", DbType.Int32, filter.ConnectionType);
                }

                using (IDataReader idr = _db.ExecuteReader(cmd))
                {
                    Entities.ActiveConnection connection = null;

                    while (idr.Read())
                    {
                        connection = new Entities.ActiveConnection(idr);

                        activeConnections.Add(connection);
                    }
                }
            }

            return(activeConnections);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Return all active connections that match the filter
 /// </summary>
 /// <param name="filter">The filter used to select active connections</param>
 /// <returns>A list of active connections</returns>
 public List <Entities.ActiveConnection> Execute(Entities.Filters.ActiveConnection.SelectAll filter)
 {
     return(_selectActiveConnection.Execute(filter));
 }
Exemplo n.º 10
0
        private List<Entities.ActiveConnection> GetConnections(String groupName, Entities.Enums.ConnectionType connectionType)
        {
            AS.ActiveConnection.Base.ISelect _selectConnections = BusinessLogic.UnityConfig.Container.Resolve<AS.ActiveConnection.Base.ISelect>();

            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();

            if (groupName != GLOBAL)
            {
                filter.GroupName = groupName;
            }

            filter.ConnectionType = connectionType;

            List<Entities.ActiveConnection> connections = _selectConnections.Execute(filter).GroupBy(con => con.User_UserId)
                                                                                            .Select(con2 => con2.First())
                                                                                            .ToList();

            return connections;
        }
Exemplo n.º 11
0
        private List<Entities.ActiveConnection> GetConnections(Int32 gameID, List<Int32> exclude)
        {
            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();
            filter.GroupName = String.Format("Game_{0}", gameID);
            filter.ExcludeUsers = exclude;

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

            return connections;
        }
Exemplo n.º 12
0
        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;
        }
Exemplo n.º 13
0
        /// <summary>
        /// Alert the users a vote to kick has completed
        /// </summary>
        /// <param name="gameID">The game ID</param>
        /// <param name="kickedUser">The user that was being voted on</param>
        /// <param name="votesToKick">The number of votes to kick</param>
        /// <param name="votesNotToKick">The number votes not to kick</param>
        /// <param name="isKicked">Was the user kicked based on the votes</param>
        public void VoteComplete(Int32 gameID, Entities.User kickedUser, Int32 votesToKick, Int32 votesNotToKick, Boolean isKicked)
        {
            Entities.Filters.ActiveConnection.SelectAll filter = new Entities.Filters.ActiveConnection.SelectAll();
            filter.GroupName = String.Format("Game_{0}", gameID);

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

            foreach (Entities.ActiveConnection connection in connections)
            {
                String message;
                String title = "Kick Player Results";

                String userSpan = String.Format("<span class='{0}'>{1}</span>",
                                                                    "loggedIn",
                                                                    String.Format("<img src='{0}' /> {1}", kickedUser.PictureUrl, kickedUser.DisplayName));

                if (isKicked)
                {
                    message = "{0} was kicked. <br /> Votes To Kick: {1} <br/> Votes To Stay: {2}";
                }
                else
                {
                    message = "{0} was not kicked. <br /> Votes To Kick: {1} <br/> Votes To Stay: {2}";
                }

                _hub.Clients.Client(connection.ActiveConnectionID)
                                   .VoteToKickResults(String.Format(message, userSpan, votesToKick, votesNotToKick),
                                                        title,
                                                        (isKicked && kickedUser.UserId == connection.User_UserId),
                                                        kickedUser.UserId);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// Update the game view when the commander has selected the winner of the round
        /// </summary>
        /// <param name="game">The game to update</param>
        /// <param name="round">The game's current round</param>
        /// <param name="sendToSpectators">Should this update go to spectators</param>
        public void SendWinnerSelected(Entities.Game game, Entities.GameRound round, Boolean sendToSpectators)
        {
            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);

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

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