public static IPolicyRegistry <string> AddLCUPollyRegistry(this IServiceCollection services, LCUStartupHTTPClientOptions httpOpts) { var registry = services.AddPolicyRegistry(); if (httpOpts != null) { var timeout = Policy.TimeoutAsync <HttpResponseMessage>(TimeSpan.FromSeconds(httpOpts.TimeoutSeconds)); registry.Add("regular", timeout); var longTimeout = Policy.TimeoutAsync <HttpResponseMessage>(TimeSpan.FromSeconds(httpOpts.LongTimeoutSeconds)); registry.Add("long", longTimeout); } return(registry); }
public static IHttpClientBuilder AddLCUHTTPClient <TClient>(this IServiceCollection services, IPolicyRegistry <string> registry, LCUStartupHTTPClientOptions httpOpts) where TClient : class { var clientName = typeof(TClient).Name; var clientOptions = httpOpts.Options[clientName]; return(services.AddLCUHTTPClient <TClient>(registry, new Uri(clientOptions.BaseAddress))); }