From 90ce1395b8f5ba28f6dd28c87d662a2380c372f2 Mon Sep 17 00:00:00 2001 From: Glax Date: Wed, 19 Mar 2025 00:16:00 +0100 Subject: [PATCH] Add Middleware to add Startofrequest time to all requests --- API/HttpRequestTimeFeature.cs | 35 +++++++++++++++++++++++++++++++++++ API/Program.cs | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 API/HttpRequestTimeFeature.cs diff --git a/API/HttpRequestTimeFeature.cs b/API/HttpRequestTimeFeature.cs new file mode 100644 index 0000000..116bf3c --- /dev/null +++ b/API/HttpRequestTimeFeature.cs @@ -0,0 +1,35 @@ +namespace API; + +public interface IHttpRequestTimeFeature +{ + DateTime RequestTime { get; } +} + +public class HttpRequestTimeFeature : IHttpRequestTimeFeature +{ + public DateTime RequestTime { get; } + + public HttpRequestTimeFeature() + { + RequestTime = DateTime.Now; + } +} + +public class RequestTimeMiddleware +{ + private readonly RequestDelegate _next; + + public RequestTimeMiddleware(RequestDelegate next) + { + _next = next; + } + + public Task InvokeAsync(HttpContext context) + { + var httpRequestTimeFeature = new HttpRequestTimeFeature(); + context.Features.Set(httpRequestTimeFeature); + + // Call the next delegate/middleware in the pipeline + return this._next(context); + } +} \ No newline at end of file diff --git a/API/Program.cs b/API/Program.cs index 05e12ac..e1cd4ac 100644 --- a/API/Program.cs +++ b/API/Program.cs @@ -95,6 +95,8 @@ app.UseSwaggerUI(options => app.UseHttpsRedirection(); +//app.UseMiddleware(); + using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService();