/// <summary> /// Selects a game based on supplied filter /// </summary> /// <param name="filter">Filter used to select game</param> /// <returns>A game that satisfy the supplied filter</returns> public Entities.Game Execute(Entities.Filters.Game.Select filter) { Entities.Game game = _selectGame.Execute(filter); Entities.Filters.GamePlayer.Select playerFilter = new Entities.Filters.GamePlayer.Select(); playerFilter.GameID = filter.GameID; playerFilter.SelectCards = filter.DataToSelect.HasFlag(Entities.Enums.Game.Select.GamePlayerCards); List <Entities.GamePlayer> allPlayers = _selectGamePlayerREPO.Execute(playerFilter); game.Players = allPlayers.Where(x => x.PlayerType == Entities.Enums.GamePlayerType.Player).ToList(); game.Spectators = allPlayers.Where(x => x.PlayerType == Entities.Enums.GamePlayerType.Spectator).ToList(); Entities.Filters.Deck.SelectByGameID deckFilter = new Entities.Filters.Deck.SelectByGameID(); deckFilter.GameIDs.Add(game.GameID); game.GameDecks = _selectDeck.Execute(deckFilter); if (filter.DataToSelect.HasFlag(Entities.Enums.Game.Select.Rounds)) { game.Rounds.Add(_selectGameRound.Execute(game.GameID, true)); } return(game); }
/// <summary> /// Selects game players base on supplied filter /// </summary> /// <param name="filter">Filter used to select game players</param> /// <returns>A list of game players that satisfy the supplied filter</returns> public List <Entities.GamePlayer> Execute(Entities.Filters.GamePlayer.Select filter) { List <Entities.GamePlayer> players = _selectGamePlayers.Execute(filter); if (filter.SelectCards) { SelectCards(filter, players); } return(players); }
private void SelectCards(Entities.Filters.GamePlayer.Select filter, List <Entities.GamePlayer> players) { List <Entities.GamePlayerCard> playerCards = _selectGamePlayerCards.Execute(filter.GameID, null); foreach (Entities.GamePlayer player in players) { if (player.PlayerType == Entities.Enums.GamePlayerType.Player) { player.Hand = playerCards.Where(x => x.UserId == player.User.UserId).ToList(); } } }
/// <summary> /// Selects game players base on supplied filter /// </summary> /// <param name="filter">Filter used to select game players</param> /// <returns>A list of game players that satisfy the supplied filter</returns> public List <Entities.GamePlayer> Execute(Entities.Filters.GamePlayer.Select filter) { List <Entities.GamePlayer> gamePlayers = new List <Entities.GamePlayer>(); using (DbCommand cmd = _db.GetStoredProcCommand("GamePlayer_Select")) { _db.AddInParameter(cmd, "@GameID", DbType.Int32, filter.GameID); if (filter.PlayerType.HasValue) { _db.AddInParameter(cmd, "@Type", DbType.Int32, filter.PlayerType); } using (IDataReader idr = _db.ExecuteReader(cmd)) { while (idr.Read()) { gamePlayers.Add(new Entities.GamePlayer(idr)); } } } return(gamePlayers); }
/// <summary> /// Selects game players base on supplied filter /// </summary> /// <param name="filter">Filter used to select game players</param> /// <returns>A list of game players that satisfy the supplied filter</returns> public List <Entities.GamePlayer> Execute(Entities.Filters.GamePlayer.Select filter) { List <Entities.GamePlayer> players = _selectGamePlayers.Execute(filter); return(players); }
/// <summary> /// Selects a game based on supplied filter /// </summary> /// <param name="filter">Filter used to select game</param> /// <returns>A game that satisfy the supplied filter</returns> public Entities.Game Execute(Entities.Filters.Game.Select filter) { Entities.Game game = _selectGame.Execute(filter); Entities.Filters.GamePlayer.Select playerFilter = new Entities.Filters.GamePlayer.Select(); playerFilter.GameID = filter.GameID; playerFilter.SelectCards = filter.DataToSelect.HasFlag(Entities.Enums.Game.Select.GamePlayerCards); List<Entities.GamePlayer> allPlayers = _selectGamePlayerREPO.Execute(playerFilter); game.Players = allPlayers.Where(x => x.PlayerType == Entities.Enums.GamePlayerType.Player).ToList(); game.Spectators = allPlayers.Where(x => x.PlayerType == Entities.Enums.GamePlayerType.Spectator).ToList(); Entities.Filters.Deck.SelectByGameID deckFilter = new Entities.Filters.Deck.SelectByGameID(); deckFilter.GameIDs.Add(game.GameID); game.GameDecks = _selectDeck.Execute(deckFilter); if (filter.DataToSelect.HasFlag(Entities.Enums.Game.Select.Rounds)) { game.Rounds.Add(_selectGameRound.Execute(game.GameID, true)); } return game; }