using Microsoft.Extensions.DependencyInjection; using DiunaBI.UI.Shared.Services; using DiunaBI.UI.Shared.Handlers; namespace DiunaBI.UI.Shared.Extensions; public static class ServiceCollectionExtensions { public static IServiceCollection AddSharedServices(this IServiceCollection services, string apiBaseUrl) { // HttpClient for API calls with logging // Ensure BaseAddress ends with / for proper relative URL resolution var baseUri = apiBaseUrl.EndsWith('/') ? apiBaseUrl : apiBaseUrl + "/"; services.AddTransient(); services.AddHttpClient(client => { client.BaseAddress = new Uri(baseUri); }) .AddHttpMessageHandler(); services.AddHttpClient(client => { client.BaseAddress = new Uri(baseUri); }) .AddHttpMessageHandler(); // Services services.AddScoped(); services.AddScoped(); return services; } }