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; }
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)); }