using Microsoft.Extensions.DependencyInjection; namespace Leanetec.EConnect.Infrastructure; public static class DependencyInjection { internal static readonly string HttpClientName = Guid.NewGuid().ToString(); internal static IServiceCollection ConfigureHttpClient(this IServiceCollection services, Action configureClient) { services.AddHttpClient(HttpClientName, configureClient); return services; } public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action options) { Config config = new(services); options.Invoke(config); services.ConfigureHttpClient(config.Client); return services; } public sealed class Config { private readonly IServiceCollection _services; internal Config(IServiceCollection services) { _services = services; } public Action Client { get; set; } = _ => { }; } }