public static T WithHttpClient <T>( this AbstractApplicationBuilder <T> appBuilder, HttpClient httpClient ) where T : AbstractApplicationBuilder <T> { _ = appBuilder ?? throw new ArgumentNullException(nameof(appBuilder)); return(appBuilder.WithHttpClientFactory(new MsalHttpClient(httpClient))); }
public static T WithHttpClientFactory <T>( this AbstractApplicationBuilder <T> appBuilder, IHttpClientFactory httpFactory, string?name = default ) where T : AbstractApplicationBuilder <T> { _ = appBuilder ?? throw new ArgumentNullException(nameof(appBuilder)); _ = httpFactory ?? throw new ArgumentNullException(nameof(httpFactory)); var msalHttpFactory = new MsalHttpClientFactory(httpFactory, name); return(appBuilder.WithHttpClientFactory(msalHttpFactory)); }
public static T WithLoggerFactory <T>( this AbstractApplicationBuilder <T> appBuilder, ILoggerFactory loggerFactory) where T : AbstractApplicationBuilder <T> { _ = appBuilder ?? throw new ArgumentNullException(nameof(appBuilder)); loggerFactory ??= Microsoft.Extensions.Logging.Abstractions .NullLoggerFactory.Instance; var builderName = typeof(T).Name !; const string builderSuffix = "Builder"; string prefix = typeof(T).Namespace + "."; string categoryName = builderName.IndexOf(builderSuffix, StringComparison.OrdinalIgnoreCase) switch { int idx when idx < 0 => builderName, 0 => typeof(AbstractApplicationBuilder <>).Namespace !, int idx => builderName.Substring(0, idx), }; var logger = loggerFactory.CreateLogger(prefix + categoryName); var logCallback = logger.GetMsalLogCallback(); return(appBuilder.WithLogging(logCallback, MsalLogLevel.Verbose)); }