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);
        }
Exemple #4
0
        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);
        }