/// <summary> /// Constructor. /// </summary> /// <param name="gameStatisticsPublisher">Game stats web socket publisher</param> /// <param name="gameRoundDataManager">Game Round Data manager</param> /// <param name="gameRoundLockManager">Game Round Lock manager.</param> /// <param name="gameRoundTimeCalculator">Game Round time calculator.</param> /// <param name="dateTimeSource">Source of time.</param> /// <param name="logger">Logging.</param> public StartGameRoundEventHandler(IGameStatisticsPublisher gameStatisticsPublisher, IGameRoundDataManager gameRoundDataManager, IObjectLockManager <GameRoundId> gameRoundLockManager, IGameRoundTimeCalculator gameRoundTimeCalculator, IDateTimeSource dateTimeSource, ILogger <StartGameRoundEventHandler> logger) : base(gameRoundDataManager: gameRoundDataManager, gameRoundLockManager: gameRoundLockManager, logger: logger) { this._gameStatisticsPublisher = gameStatisticsPublisher ?? throw new ArgumentNullException(nameof(gameStatisticsPublisher)); this._gameRoundTimeCalculator = gameRoundTimeCalculator ?? throw new ArgumentNullException(nameof(gameRoundTimeCalculator)); this._dateTimeSource = dateTimeSource ?? throw new ArgumentNullException(nameof(dateTimeSource)); }
/// <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)); }