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, string path = "") { services.TryAddSingleton(); services.TryAddSingleton(); services.AddSingleton(); services.Configure(opt => { opt.Uri = uri; opt.Path = path; }); return services; } public static IServiceCollection AddHttpClientService(this IServiceCollection services, Action? clientOptions = null, bool setAsDefaultBase = false) where TClientOptions : HttpClientOptions { services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton, HttpClientService>(); services.Configure(clientOptions ?? (_ => { })); if (setAsDefaultBase) services.TryAddSingleton>(); return services; } } }