📄
src/Integrations/Vasttrafik/ServiceCollectionExtensions.cs
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace MMirror.Integrations.Vasttrafik; public static class ServiceCollectionExtensions { extension(IServiceCollection services) { public IServiceCollection AddVasttrafikServices() { services.AddMemoryCache(); services.AddOptions<ClientOptions>().BindConfiguration("Vasttrafik").ValidateOnStart(); services.AddTransient<IValidateOptions<ClientOptions>, ClientOptionsValidator>(); services .AddHttpClient<OAuth2Handler>() .ConfigureHttpClient( (sp, client) => client.BaseAddress = sp.GetRequiredService<IOptions<ClientOptions>>().Value.BaseAddress ); services .AddHttpClient<VasttrafikClient>() .AddHttpMessageHandler<OAuth2Handler>() .ConfigureHttpClient( (sp, client) => client.BaseAddress = sp.GetRequiredService<IOptions<ClientOptions>>().Value.BaseAddress ); return services; } } }