From 988d48581be1c931964e9a3fae9766e5471a7908 Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 27 Nov 2025 09:31:46 +0100 Subject: [PATCH] Add configuration options and license key support Updated `DependencyInjection.cs` to include support for `ConfigurationOptions`, enabling queued configuration actions and the ability to configure `RecActionOptions` via delegates or `IConfiguration`. Added `LuckyPennySoftwareLicenseKey` property to `ConfigurationOptions` and integrated it into `AddAutoMapper` setup. Introduced `ApplyConfigurations` method to process queued actions. Updated `using` directives to include necessary namespaces. --- src/ReC.Application/DependencyInjection.cs | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ReC.Application/DependencyInjection.cs b/src/ReC.Application/DependencyInjection.cs index eab149e..070a261 100644 --- a/src/ReC.Application/DependencyInjection.cs +++ b/src/ReC.Application/DependencyInjection.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using ReC.Application.Common.Options; using System.Reflection; namespace ReC.Application; @@ -9,6 +11,7 @@ public static class DependencyInjection { var configOpt = new ConfigurationOptions(); options.Invoke(configOpt); + configOpt.ApplyConfigurations(services); services.AddAutoMapper(cfg => { @@ -29,6 +32,29 @@ public static class DependencyInjection public class ConfigurationOptions { + private readonly Queue> _configActions = new(); + + internal void ApplyConfigurations(IServiceCollection services) + { + while (_configActions.Count > 0) + { + var action = _configActions.Dequeue(); + action(services); + } + } + public string? LuckyPennySoftwareLicenseKey { get; set; } + + public ConfigurationOptions ConfigureRecActions(Action configure) + { + _configActions.Enqueue(services => services.Configure(configure)); + return this; + } + + public ConfigurationOptions ConfigureRecActions(IConfiguration configuration) + { + _configActions.Enqueue(services => services.Configure(configuration)); + return this; + } } }