/// <summary> /// Initializes a new instance of <see cref="Registry"/>. /// </summary> /// <param name="settings">Configuration settings for registry initialization.</param> /// <param name="stepFactory">A factory to create steps from settings.</param> /// <param name="processorFactory">A factory to create processors from settings.</param> /// <param name="policyFactory">A factory to create http client policies from settings.</param> /// <param name="clientFactory">A factory to create http client configurations from settings.</param> /// <param name="logger">The <see cref="ILogger"/> instance to use for logging.</param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/> instance to use for initializing loggers for created objects.</param> public Registry(IRegistrySettings settings, IConfigFactory <IStep> stepFactory, IConfigFactory <IProcessor> processorFactory, IConfigFactory <IAsyncPolicy <HttpResponseMessage> > policyFactory, IConfigFactory <ClientConfig> clientFactory, ILogger <Registry> logger, ILoggerFactory loggerFactory) { _ = settings ?? throw new ArgumentNullException(nameof(settings)); _ = stepFactory ?? throw new ArgumentNullException(nameof(stepFactory)); _ = processorFactory ?? throw new ArgumentNullException(nameof(processorFactory)); _ = policyFactory ?? throw new ArgumentNullException(nameof(policyFactory)); _ = clientFactory ?? throw new ArgumentNullException(nameof(clientFactory)); log = logger ?? throw new ArgumentNullException(nameof(logger)); _ = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); InitializeFromSettings(settings, ProcessorsSection, out processors, (s) => processorFactory.Create(s)); InitializeFromSettings(settings, StepsSection, out steps, (s) => stepFactory.Create(s)); InitializeFromSettings(settings, PoliciesSection, out policies, (s) => policyFactory.Create(s)); InitializeFromSettings(settings, ClientsSection, out clients, (s) => clientFactory.Create(s)); foreach (var policy in policies) { log.LogDebug("{Policy} added from {Setting}", policy.Value?.GetType()?.Name, policy.Key); PolicyRegistry.Add(policy.Key, policy.Value); } simpleClientFactory = new SimpleHttpClientFactory(clients, loggerFactory.CreateLogger <SimpleHttpClientFactory>()); }
public void before_each_test() { registrySettings = SystemRegistrySettings.Instance; stringKey = Guid.NewGuid().ToString(); CreateRegistrySetting(stringKey, "Hello, World!"); }
public BetterLicense(IClock clock, IRegistrySettings registrySettings, IFileSystem fileSystem) { this.clock = clock; this.registrySettings = registrySettings; this.fileSystem = fileSystem; Initialize(); }
private void InitializeFromSettings <T>(IRegistrySettings settings, string sectionName, out IDictionary <string, T> registry, Func <string, T> factory) { registry = new Dictionary <string, T>(); if (settings.TryGetSection(sectionName, out IEnumerable <KeyValuePair <string, string> > section)) { log.LogInformation("Adding settings from {ConfigSection}", sectionName); foreach (var setting in section) { log.LogInformation("Adding {SettingName} from {ConfigSection}", setting.Key, sectionName); registry.Add(setting.Key, factory(setting.Value)); } } else { log.LogError("{ConfigSection} was not found in the configuration file", sectionName); throw new InvalidOperationException($"Section '{sectionName}' was not found in the configuration file"); } }