public ConfigurationReader( IStorageProvider <ObjectId> provider, ICacheService cacheService, ConfigurationReaderOptions options) { _provider = provider; _cacheService = cacheService; _options = options; }
public static void AddConfigurationReader(this IServiceCollection serviceCollection, Action <ConfigurationReaderOptions> options) { serviceCollection.AddMemoryCache(); var configurationReaderOptions = new ConfigurationReaderOptions(); options(configurationReaderOptions); ValidateOptions(configurationReaderOptions); serviceCollection.AddSingleton(configurationReaderOptions); serviceCollection.AddMongoDbStorageProvider(configurationReaderOptions.ConnectionString); serviceCollection.AddTransient <ICacheService, CacheService>(); serviceCollection.AddTransient <IConfigurationReader, ConfigurationReader>(); }
private static void ValidateOptions(ConfigurationReaderOptions options) { if (string.IsNullOrEmpty(options.ApplicationName)) { throw new ArgumentException("Value cannot be null or empty.", nameof(options.ApplicationName)); } if (string.IsNullOrEmpty(options.ConnectionString)) { throw new ArgumentException("Value cannot be null or empty.", nameof(options.ConnectionString)); } if (options.RefreshTimerIntervalInMs <= 0) { throw new ArgumentOutOfRangeException(nameof(options.RefreshTimerIntervalInMs)); } }