using DigitalData.Core.Abstractions.Client; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; using System.Net; namespace DigitalData.Core.Client { public static class DIExtensions { internal static IServiceCollection AddHttpClientServiceDefaults(this IServiceCollection services) { services.TryAddSingleton(); services.TryAddSingleton(); return services; } public static IServiceCollection AddHttpClientService(this IServiceCollection services, IConfigurationSection section) where THttpClientOptions : class, IHttpClientOptions { services.AddHttpClientServiceDefaults(); services.TryAddSingleton, HttpClientService>(); return services.Configure(section); } public static IServiceCollection AddHttpClientService(this IServiceCollection services, THttpClientOptions options) where THttpClientOptions : class, IHttpClientOptions { services.AddHttpClientServiceDefaults(); services.TryAddSingleton, HttpClientService>(); services.TryAddSingleton(Options.Create(options)); return services; } } }