Exemplo n.º 1
0
        public MmrRetrievalService(ILogger <MmrRetrievalService> logger, MmrRetrievalSettings settings,
                                   DatabaseService databaseService, IRocketLeagueDataRetrievalService rocketLeagueDataRetrievalService, MmrDataStore mmrDataStore,
                                   SeasonService seasonService)
        {
            _logger          = logger ?? throw new ArgumentNullException(nameof(logger));
            _settings        = settings ?? throw new ArgumentNullException(nameof(settings));
            _databaseService = databaseService ?? throw new ArgumentNullException(nameof(databaseService));
            _rocketLeagueDataRetrievalService = rocketLeagueDataRetrievalService ?? throw new ArgumentException(nameof(rocketLeagueDataRetrievalService));
            _seasonService       = seasonService ?? throw new ArgumentNullException(nameof(seasonService));
            _databaseRetryPolicy = Policy
                                   .Handle <Exception>()
                                   .WaitAndRetryForeverAsync((retryCount) => TimeSpan.FromSeconds(Math.Min(60, retryCount * 10)),
                                                             (e, delay) => _logger.LogError(e, "Error connecting to database. Retrying in {delay}s", delay.Seconds));

            _mmrDataStore  = mmrDataStore ?? throw new ArgumentNullException(nameof(mmrDataStore));
            _stoppingToken = CancellationToken.None;
        }
Exemplo n.º 2
0
 public RankedService(MmrRetrievalService mmrRetrievalService, SeasonService seasonService, IReadOnlyMmrDataStore mmrDataStore)
 {
     _mmrRetrievalService = mmrRetrievalService ?? throw new ArgumentNullException(nameof(mmrRetrievalService));
     _mmrDataStore        = mmrDataStore ?? throw new ArgumentNullException(nameof(mmrDataStore));
     _seasonService       = seasonService ?? throw new ArgumentNullException(nameof(seasonService));
 }