public void TableChanged(int tableId, IPlayTableService playTableService) { var tablePlayers = playTableService.GetPlayersOfTable(tableId); var tableViewers = playTableService.GetTableViewer(tableId); var tableState = TableHubUtils.GetTableState(tableId, playTableService, _mapper); Parallel.ForEach(tablePlayers, (tablePlayer) => { var clientUser = getClientUser(tablePlayer.PlayerId); if (clientUser != null) { clientUser.PlayerTableState(tableState); } }); // for all viewers of the table Parallel.ForEach(tableViewers, (tableViewer) => { var clientUser = getClientUser(tableViewer.userId); if (clientUser != null) { clientUser.SpectatorTable(tableState); } }); }
public SpectatorController( IPlayTableService tableService, IMapper mapper) { _tableService = tableService; _mapper = mapper; }
public static Card[] GetPlayerCards(int userId, IPlayTableService tableService) { var player = tableService.GettablePlayerOfId(userId); var cards = player?.GetHandCards(); return(cards); }
public void OnSpectatorStateChanged(int userId, IPlayTableService playTableService) { var clientUser = getClientUser(userId); if (clientUser != null) { clientUser.SpectatorState(TableHubUtils.GetViewWerModel(userId, playTableService, _mapper)); } }
public static PlayTableStaeModel GetTablePLayerState(int playerId, IPlayTableService playTableService, IMapper mapper) { var tablePlayer = playTableService.GettablePlayerOfId(playerId); if (tablePlayer != null) { var tableState = GetTableState(tablePlayer.TableId, playTableService, mapper); return(tableState); } return(null); }
public static IList <PlayTableCountModel> GetTablesWithUserCount(IPlayTableService playTableService, IMapper mapper) { var tables = playTableService.GetAllTables(); var model = mapper.Map <IList <PlayTableCountModel> >(tables); foreach (var table in model) { table.UserCount = playTableService.TableUserCount(table.Id); } return(model); }
public static PlayTableStaeModel GetTableState(int tableId, IPlayTableService playTableService, IMapper mapper) { var table = playTableService.GetTableById(tableId); if (table != null) { var tablePlayers = playTableService.GetPlayersOfTable(tableId); var tableState = mapper.Map <PlayTableStaeModel>(table); tableState.UserCount = tablePlayers.Length; tableState.TableId = table.Id; tableState.Players = tablePlayers.Select((p) => new AdditionPlayerInfoModel(p)).ToArray(); tableState.ShuffleCount = tablePlayers.Count(p => p.ShuffleRound); tableState.NextTurnCount = tablePlayers.Count(p => p.NextTurn); return(tableState); } return(null); }
public void OnPlayerCardsChanged(int userId, Card[] userCards, IPlayTableService playTableService) { _hub.Clients.User(userId.ToString()).PlayerCards(userCards); //for viewers var viewers = playTableService.GetTableViewerOfCardPlayers(userId); if (viewers.Length > 0) { foreach (var viewer in viewers) { var clientUser = getClientUser(viewer.userId); if (clientUser != null) { clientUser.PlayerCardsForSpectator(userCards); } } } }
public async void TableListChanged(IPlayTableService playTableService) { await _hub.Clients.All.Tables(TableHubUtils.GetTablesWithUserCount(playTableService, _mapper)); }
public PlayTableController(IPlayTableService playTableService, IMapper mapper, IHubContext <TableHub, ITableClient> hub) { _playTableService = playTableService; _mapper = mapper; _hub = hub; }
public static ViewWerModel GetViewWerModel(int userId, IPlayTableService playTableService, IMapper mapper) { var viewer = playTableService.GetTableViewerByUserId(userId); return(viewer == null ? null : mapper.Map <ViewWerModel>(viewer)); }
public TableHub(IPlayTableService tableService, IMapper mapper) { _tablesService = tableService; _mapper = mapper; }