/// <summary> /// Constructor /// </summary> /// <param name="ethereumNetworkConfigurationManager">Ethereum network configuration manager</param> /// <param name="gameStatsPublisher">Game stats publisher</param> /// <param name="playerCountManager">The player counter</param> /// <param name="logger">The logger</param> public OnlinePlayerService(IEthereumNetworkConfigurationManager ethereumNetworkConfigurationManager, IPlayerStatisticsPublisher gameStatsPublisher, IPlayerCountManager playerCountManager, ILogger <OnlinePlayerService> logger) : base(TimeSpan.FromSeconds(1), logger: logger) { this._ethereumNetworkConfigurationManager = ethereumNetworkConfigurationManager; this._gameStatsPublisher = gameStatsPublisher ?? throw new ArgumentNullException(nameof(gameStatsPublisher)); this._playerCountManager = playerCountManager ?? throw new ArgumentNullException(nameof(playerCountManager)); this._playersOnline = new ConcurrentDictionary <EthereumNetwork, int>(); }
/// <summary> /// Constructor /// </summary> /// <param name="ethereumNetworkRegistry">Ethereum network registry</param> /// <param name="groupNameGenerator">The group name generator</param> /// <param name="environment">Execution environment</param> /// <param name="subscriptionManager">Subscription manager</param> /// <param name="playerCountManager">Player counter.</param> /// <param name="rateLimiter">Rate limiter</param> /// <param name="logger">Logger</param> public AuthenticatedHub(IEthereumNetworkRegistry ethereumNetworkRegistry, IGroupNameGenerator groupNameGenerator, ExecutionEnvironment environment, ISubscriptionManager subscriptionManager, IPlayerCountManager playerCountManager, IRateLimiter rateLimiter, ILogger <AuthenticatedHub> logger) : base(ethereumNetworkRegistry: ethereumNetworkRegistry, groupNameGenerator: groupNameGenerator, environment: environment, subscriptionManager: subscriptionManager, logger: logger) { this._playerCountManager = playerCountManager ?? throw new ArgumentNullException(nameof(playerCountManager)); this._rateLimiter = rateLimiter ?? throw new ArgumentNullException(nameof(rateLimiter)); }
/// <summary> /// Constructor /// </summary> /// <param name="ethereumNetworkRegistry">Ethereum network registry</param> /// <param name="groupNameGenerator">The group name generator</param> /// <param name="environment">Execution environment</param> /// <param name="subscriptionManager">Subscription manager</param> /// <param name="playerCountManager">Player counter.</param> /// <param name="gameRoundDataManager">Game Round Manager.</param> /// <param name="gameRoundTimeCalculator">Game round time calculator.</param> /// <param name="startRoundGameHistoryBuilder">Game Round history builder.</param> /// <param name="ethereumBlockStatus">Ethereum block status.</param> /// <param name="rateLimiter">Rate limiter</param> /// <param name="logger">Logger</param> public AuthenticatedHub(IEthereumNetworkRegistry ethereumNetworkRegistry, IGroupNameGenerator groupNameGenerator, ExecutionEnvironment environment, ISubscriptionManager subscriptionManager, IPlayerCountManager playerCountManager, IGameRoundDataManager gameRoundDataManager, IGameRoundTimeCalculator gameRoundTimeCalculator, IStartRoundGameHistoryBuilder startRoundGameHistoryBuilder, IEthereumBlockStatus ethereumBlockStatus, IRateLimiter rateLimiter, ILogger <AuthenticatedHub> logger) : base(ethereumNetworkRegistry: ethereumNetworkRegistry, groupNameGenerator: groupNameGenerator, environment: environment, subscriptionManager: subscriptionManager, logger: logger) { this._playerCountManager = playerCountManager ?? throw new ArgumentNullException(nameof(playerCountManager)); this._gameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(nameof(gameRoundDataManager)); this._gameRoundTimeCalculator = gameRoundTimeCalculator ?? throw new ArgumentNullException(nameof(gameRoundTimeCalculator)); this._startRoundGameHistoryBuilder = startRoundGameHistoryBuilder ?? throw new ArgumentNullException(nameof(startRoundGameHistoryBuilder)); this._ethereumBlockStatus = ethereumBlockStatus ?? throw new ArgumentNullException(nameof(ethereumBlockStatus)); this._rateLimiter = rateLimiter ?? throw new ArgumentNullException(nameof(rateLimiter)); }
/// <summary> /// Constructor /// </summary> /// <param name="ethereumAccountManager">The ethereum account manager.</param> /// <param name="gameManager">Game Manager.</param> /// <param name="gameRoundDataManager">Game round data manager.</param> /// <param name="ethereumBlockStatus">Ethereum block status.</param> /// <param name="gameManagerLockManager">Game contract lock manager.</param> /// <param name="contractInfoRegistry">The contract info registry.</param> /// <param name="gamesList">Game list.</param> /// <param name="playerCountManager">Player count manager.</param> /// <param name="logger">Logger</param> public StartGameService(IEthereumAccountManager ethereumAccountManager, IGameManager gameManager, IGameRoundDataManager gameRoundDataManager, IEthereumBlockStatus ethereumBlockStatus, IObjectLockManager <EthereumAddress> gameManagerLockManager, IContractInfoRegistry contractInfoRegistry, IGamesList gamesList, IPlayerCountManager playerCountManager, ILogger <StartGameService> logger) { this._ethereumAccountManager = ethereumAccountManager ?? throw new ArgumentNullException(nameof(ethereumAccountManager)); this._gameManager = gameManager ?? throw new ArgumentNullException(nameof(gameManager)); this._gameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(paramName: nameof(gameRoundDataManager)); this._ethereumBlockStatus = ethereumBlockStatus ?? throw new ArgumentNullException(nameof(ethereumBlockStatus)); this._gameManagerLockManager = gameManagerLockManager ?? throw new ArgumentNullException(nameof(gameManagerLockManager)); this._gamesList = gamesList ?? throw new ArgumentNullException(nameof(gamesList)); this._playerCountManager = playerCountManager ?? throw new ArgumentNullException(nameof(playerCountManager)); this._logger = logger ?? throw new ArgumentNullException(paramName: nameof(logger)); this._contractInfo = contractInfoRegistry.FindContractInfo(WellKnownContracts.GameManager); }