AB#5820 - Introduced WebProfiler for asp.net core

This commit is contained in:
Bjarke Berg
2020-03-24 18:18:25 +01:00
parent 919271b2c6
commit 9339e1d999
19 changed files with 431 additions and 18 deletions

View File

@@ -0,0 +1,52 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
namespace Umbraco.Web.Common.Middleware
{
public class UmbracoRequestMiddleware
{
private readonly RequestDelegate _next;
private readonly IUmbracoRequestLifetimeManager _umbracoRequestLifetimeManager;
public UmbracoRequestMiddleware(RequestDelegate next, IUmbracoRequestLifetimeManager umbracoRequestLifetimeManager)
{
_next = next;
_umbracoRequestLifetimeManager = umbracoRequestLifetimeManager;
}
public async Task InvokeAsync(HttpContext context)
{
_umbracoRequestLifetimeManager.InitRequest(context);
await _next(context);
_umbracoRequestLifetimeManager.EndRequest(context);
}
}
public interface IUmbracoRequestLifetime
{
event EventHandler<HttpContext> RequestStart;
event EventHandler<HttpContext> RequestEnd;
}
public class UmbracoRequestLifetime : IUmbracoRequestLifetime, IUmbracoRequestLifetimeManager
{
public event EventHandler<HttpContext> RequestStart;
public event EventHandler<HttpContext> RequestEnd;
public void InitRequest(HttpContext context)
{
RequestStart?.Invoke(this, context);
}
public void EndRequest(HttpContext context)
{
RequestEnd?.Invoke(this, context);
}
}
public interface IUmbracoRequestLifetimeManager
{
void InitRequest(HttpContext context);
void EndRequest(HttpContext context);
}
}