public static IHttpReportsInitializer UseHttpReports(this IApplicationBuilder app) { ServiceContainer.Provider = app.ApplicationServices.GetRequiredService <IServiceProvider>() ?? throw new ArgumentNullException("ServiceProvider Init Faild"); Activity.DefaultIdFormat = ActivityIdFormat.W3C; IHttpReportsInitializer httpReportsInitializer = app.InitHttpReports().InitStorage(); var backgroundService = app.ApplicationServices.GetRequiredService <IBackgroundService>(); backgroundService.StartAsync(app); var options = app.ApplicationServices.GetRequiredService <IOptions <HttpReportsOptions> >(); if (!options.Value.Switch) { return(null); } app.UseMiddleware <DefaultHttpReportsMiddleware>(); TraceDiagnsticListenerObserver observer = app.ApplicationServices.GetRequiredService <TraceDiagnsticListenerObserver>(); System.Diagnostics.DiagnosticListener.AllListeners.Subscribe(observer); return(httpReportsInitializer); }
public static IHttpReportsInitializer InitStorage(this IHttpReportsInitializer initializer) { var storage = initializer.ApplicationBuilder.ApplicationServices.GetRequiredService <IHttpReportsStorage>() ?? throw new ArgumentNullException("Storage Service Not Found"); storage.InitAsync().Wait(); return(initializer); }
public static IHttpReportsInitializer InitStorage(this IHttpReportsInitializer initializer) { var storage = initializer.ApplicationBuilder.ApplicationServices.GetService <IHttpReportsStorage>(); if (storage == null) { return(initializer); } storage.InitAsync().Wait(); return(initializer); }
public static IHttpReportsInitializer UseHttpReports(this IApplicationBuilder app) { Activity.DefaultIdFormat = ActivityIdFormat.W3C; IHttpReportsInitializer httpReportsInitializer = app.InitHttpReports().InitStorage(); var backgroundService = app.ApplicationServices.GetRequiredService <IBackgroundService>(); backgroundService.StartAsync(app); var options = app.ApplicationServices.GetRequiredService <IOptions <HttpReportsOptions> >(); if (!options.Value.Switch) { return(null); } app.UseMiddleware <DefaultHttpReportsMiddleware>(); return(httpReportsInitializer); }