using DigitalData.Core.Abstractions.Client; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using System.Net; namespace DigitalData.Core.Client { public static class DIExtensions { public static IServiceCollection AddHttpClientService(this IServiceCollection services, string uri) { services.TryAddSingleton(); services.TryAddSingleton(); services.AddSingleton(); services.Configure(opt => opt.Uri = uri); return services; } public static IServiceCollection AddHttpClientService(this IServiceCollection services, Action? clientOptions = null, bool setAsDefaultBase = false) where TClientOptions : HttpClientOptions { services.TryAddSingleton(); services.TryAddSingleton(); services.AddSingleton, HttpClientService>(); services.Configure(clientOptions ?? (_ => { })); if (setAsDefaultBase) services.AddSingleton>(); return services; } } }