mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2025-12-27 07:58:24 -05:00
34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Http;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Cleanuparr.Infrastructure.Http.DynamicHttpClientSystem;
|
|
|
|
/// <summary>
|
|
/// Service collection extensions for the dynamic HTTP client system
|
|
/// </summary>
|
|
public static class DynamicHttpClientServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Adds the dynamic HTTP client system to the service collection
|
|
/// This replaces the traditional AddHttpClients method
|
|
/// </summary>
|
|
public static IServiceCollection AddDynamicHttpClients(this IServiceCollection services)
|
|
{
|
|
// Register the dynamic system components
|
|
services.AddSingleton<IHttpClientConfigStore, HttpClientConfigStore>();
|
|
services.AddSingleton<IConfigureOptions<HttpClientFactoryOptions>, DynamicHttpClientConfiguration>();
|
|
services.AddSingleton<IDynamicHttpClientFactory, DynamicHttpClientFactory>();
|
|
|
|
// Register the cache invalidation service
|
|
services.AddSingleton<IHttpClientOptionsInvalidator, HttpClientOptionsInvalidator>();
|
|
|
|
// Add base HttpClient factory
|
|
services.AddHttpClient();
|
|
|
|
// Pre-register standard configurations using a hosted service
|
|
services.AddHostedService<HttpClientConfigurationService>();
|
|
|
|
return services;
|
|
}
|
|
} |