public SeasonService(IRocketLeagueDataRetrievalService rocketLeagueDataRetrievalService, DatabaseService databaseService, ILogger <SeasonService> logger, IHostApplicationLifetime hostApplicationLifetime) { _rocketLeagueDataRetrievalService = rocketLeagueDataRetrievalService ?? throw new ArgumentNullException(nameof(rocketLeagueDataRetrievalService)); _hostApplicationLifetime = hostApplicationLifetime ?? throw new ArgumentNullException(nameof(hostApplicationLifetime)); _databaseService = databaseService ?? throw new ArgumentNullException(nameof(databaseService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _rankedSeasonBoundariesDictionary = new ConcurrentDictionary <int, RankedSeasonBoundaries>(); }
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; }