/// <summary> /// Select all the votes based on <paramref name="filter"/> /// </summary> /// <param name="filter">Filter used to select votes to kick</param> /// <param name="totalPlayers">The total number of players in the game</param> /// <returns>The list of votes</returns> public List <Entities.GamePlayerKickVote> Execute(Entities.Filters.GamePlayerKickVote.Select filter, out Int32 totalPlayers) { bool totalPlayersRead = false; List <Entities.GamePlayerKickVote> votes = new List <Entities.GamePlayerKickVote>(); totalPlayers = 0; using (DbCommand cmd = _db.GetStoredProcCommand("GamePlayerKickVote_Select")) { _db.AddInParameter(cmd, "@GameID", DbType.Int32, filter.GameID); _db.AddInParameter(cmd, "@KickUserId", DbType.Int32, filter.KickUserId); _db.AddInParameter(cmd, "@PlayerType", DbType.Int32, filter.PlayerType); _db.AddOutParameter(cmd, "@TotalPlayers", DbType.Int32, sizeof(Int32)); using (IDataReader idr = _db.ExecuteReader(cmd)) { while (idr.Read()) { votes.Add(new Entities.GamePlayerKickVote(idr)); } } if (totalPlayersRead == false) { totalPlayers = (Int32)_db.GetParameterValue(cmd, "@TotalPlayers"); totalPlayersRead = true; } } return(votes); }
/// <summary> /// Check to see if the user has enough votes to be kicked /// </summary> /// <param name="gameID">The ID of the game the user belongs to</param> /// <param name="kickUserId">The ID of the user to kick</param> /// <param name="votedToKick">Number of votes to kick</param> /// <param name="votedNotToKick">Number of votes not to kick</param> public void Execute(Int32 gameID, Int32 kickUserId, out Int32 votedToKick, out Int32 votedNotToKick) { Entities.Filters.GamePlayerKickVote.Select filter = new Entities.Filters.GamePlayerKickVote.Select(); filter.GameID = gameID; filter.KickUserId = kickUserId; //TODO: When spectator's can be kicked this will need to change filter.PlayerType = Entities.Enums.GamePlayerType.Player; Int32 totalPlayers = 0; List <Entities.GamePlayerKickVote> votes = _selectVotes.Execute(filter, out totalPlayers); votedToKick = votes.Count(x => x.Vote); votedNotToKick = votes.Count(x => !x.Vote); Int32 notVoted = totalPlayers - votedToKick - votedNotToKick; votedNotToKick += notVoted; }
/// <summary> /// Check to see if the user has enough votes to be kicked /// </summary> /// <param name="gameID">The ID of the game the user belongs to</param> /// <param name="kickUserId">The ID of the user to kick</param> /// <param name="votedToKick">Number of votes to kick</param> /// <param name="votedNotToKick">Number of votes not to kick</param> public void Execute(Int32 gameID, Int32 kickUserId, out Int32 votedToKick, out Int32 votedNotToKick) { Entities.Filters.GamePlayerKickVote.Select filter = new Entities.Filters.GamePlayerKickVote.Select(); filter.GameID = gameID; filter.KickUserId = kickUserId; //TODO: When spectator's can be kicked this will need to change filter.PlayerType = Entities.Enums.GamePlayerType.Player; Int32 totalPlayers = 0; List<Entities.GamePlayerKickVote> votes = _selectVotes.Execute(filter, out totalPlayers); votedToKick = votes.Count(x => x.Vote); votedNotToKick = votes.Count(x => !x.Vote); Int32 notVoted = totalPlayers - votedToKick - votedNotToKick; votedNotToKick += notVoted; }
/// <summary> /// Select all the votes based on <paramref name="filter"/> /// </summary> /// <param name="filter">Filter used to select votes to kick</param> /// <param name="totalPlayers">The total number of players in the game</param> /// <returns>The list of votes</returns> public List <Entities.GamePlayerKickVote> Execute(Entities.Filters.GamePlayerKickVote.Select filter, out Int32 totalPlayers) { return(_select.Execute(filter, out totalPlayers)); }