/// <summary> /// Constructor, /// </summary> /// <param name="gameRoundDataManager">Game Round Data Manager</param> /// <param name="gameManager">Game manager</param> /// <param name="ethereumAccountManager">Ethereum account manager.</param> /// <param name="transactionLoader">Transaction Loader.</param> /// <param name="contractInfoRegistry">Contract info registry.</param> /// <param name="eventSignatureFactory">Event signature factory.</param> /// <param name="eventHandlerFactory">Event Handler Factory.</param> /// <param name="eventDataManager">Event data manager.</param> /// <param name="eventDecoder">Event Decoder.</param> /// <param name="confirmationsReadinessChecker">Confirmations readiness checker.</param> /// <param name="dateTimeSource">Source of time.</param> /// <param name="logger">Logging.</param> public BrokenGameRecovery(IGameRoundDataManager gameRoundDataManager, IGameManager gameManager, IEthereumAccountManager ethereumAccountManager, ITransactionLoader transactionLoader, IContractInfoRegistry contractInfoRegistry, IEventSignatureFactory eventSignatureFactory, IEventHandlerFactory eventHandlerFactory, IEventDataManager eventDataManager, IEventDecoder eventDecoder, IConfirmationsReadinessChecker confirmationsReadinessChecker, IDateTimeSource dateTimeSource, ILogger <BrokenGameRecovery> logger) { this._gameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(nameof(gameRoundDataManager)); this._gameManager = gameManager ?? throw new ArgumentNullException(nameof(gameManager)); this._ethereumAccountManager = ethereumAccountManager ?? throw new ArgumentNullException(nameof(ethereumAccountManager)); this._transactionLoader = transactionLoader ?? throw new ArgumentNullException(nameof(transactionLoader)); this._eventSignatureFactory = eventSignatureFactory ?? throw new ArgumentNullException(nameof(eventSignatureFactory)); this._eventHandlerFactory = eventHandlerFactory ?? throw new ArgumentNullException(nameof(eventHandlerFactory)); this._eventDataManager = eventDataManager ?? throw new ArgumentNullException(nameof(eventDataManager)); this._eventDecoder = eventDecoder ?? throw new ArgumentNullException(nameof(eventDecoder)); this._confirmationsReadinessChecker = confirmationsReadinessChecker ?? throw new ArgumentNullException(nameof(confirmationsReadinessChecker)); this._dateTimeSource = dateTimeSource ?? throw new ArgumentNullException(nameof(dateTimeSource)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._contractInfo = contractInfoRegistry.FindContractInfo(WellKnownContracts.GameManager); }
/// <summary> /// Constructor. /// </summary> /// <param name="gameRoundDataManager">Game Round Data manager</param> /// <param name="gameRoundLockManager">Game Lock manager.</param> /// <param name="gameStatisticsPublisher">Game stats publisher.</param> /// <param name="logger">Logging.</param> public NoMoreBetsEventHandler(IGameRoundDataManager gameRoundDataManager, IObjectLockManager <GameRoundId> gameRoundLockManager, IGameStatisticsPublisher gameStatisticsPublisher, ILogger <NoMoreBetsEventHandler> logger) : base(gameRoundDataManager: gameRoundDataManager, gameRoundLockManager: gameRoundLockManager, logger: logger) { this._gameStatisticsPublisher = gameStatisticsPublisher ?? throw new ArgumentNullException(nameof(gameStatisticsPublisher)); }
/// <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="ethereumAccountManager">Ethereum account manager.</param> /// <param name="gameRoundDataManager">Game round data manager.</param> /// <param name="gameManager">Game Manager.</param> /// <param name="gameRoundLockManager">Game round lock manager.</param> /// <param name="dateTimeSource">Source of time.</param> /// <param name="logger">Logging.</param> public EndGameService(IEthereumAccountManager ethereumAccountManager, IGameRoundDataManager gameRoundDataManager, IGameManager gameManager, IObjectLockManager <GameRoundId> gameRoundLockManager, IDateTimeSource dateTimeSource, ILogger <EndGameService> logger) { this._ethereumAccountManager = ethereumAccountManager ?? throw new ArgumentNullException(nameof(ethereumAccountManager)); this._gameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(nameof(gameRoundDataManager)); this._gameManager = gameManager ?? throw new ArgumentNullException(nameof(gameManager)); this._gameRoundLockManager = gameRoundLockManager ?? throw new ArgumentNullException(nameof(gameRoundLockManager)); this._dateTimeSource = dateTimeSource ?? throw new ArgumentNullException(nameof(dateTimeSource)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <summary> /// Constructor. /// </summary> /// <param name="gameRoundDataManager">Game round data manager</param> /// <param name="randomSource">Random source</param> /// <param name="transactionService">Transaction service</param> /// <param name="hasher">Hasher</param> /// <param name="contractInfoRegistry">Contract info registry.</param> /// <param name="gameStatisticsPublisher">The game stats publisher</param> /// <param name="lowBalanceWatcher">Low balance watcher</param> /// <param name="logger">Logger</param> public GameManager(IGameRoundDataManager gameRoundDataManager, IRandomSource randomSource, ITransactionService transactionService, IHasher hasher, IContractInfoRegistry contractInfoRegistry, IGameStatisticsPublisher gameStatisticsPublisher, ILowBalanceWatcher lowBalanceWatcher, ILogger <GameManager> logger) { this._gameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(nameof(gameRoundDataManager)); this._randomSource = randomSource ?? throw new ArgumentNullException(nameof(randomSource)); this._transactionService = transactionService ?? throw new ArgumentNullException(nameof(transactionService)); this._hasher = hasher ?? throw new ArgumentNullException(nameof(hasher)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._gameStatisticsPublisher = gameStatisticsPublisher ?? throw new ArgumentNullException(nameof(gameStatisticsPublisher)); this._lowBalanceWatcher = lowBalanceWatcher ?? throw new ArgumentNullException(nameof(lowBalanceWatcher)); this._gameManager = contractInfoRegistry.FindContractInfo(WellKnownContracts.GameManager); }
/// <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); }
/// <summary> /// Constructor. /// </summary> /// <param name="gameRoundDataManager">Game Round Data manager</param> /// <param name="gameRoundLockManager">Game Lock manager.</param> /// <param name="logger">Logging.</param> protected GameRoundEventHandlerBase(IGameRoundDataManager gameRoundDataManager, IObjectLockManager <GameRoundId> gameRoundLockManager, ILogger logger) { this.GameRoundDataManager = gameRoundDataManager ?? throw new ArgumentNullException(nameof(gameRoundDataManager)); this._gameRoundLockManager = gameRoundLockManager ?? throw new ArgumentNullException(nameof(gameRoundLockManager)); this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }