diff --git a/Source/Boxed.AspNetCore/Middleware/HttpExceptionMiddleware.cs b/Source/Boxed.AspNetCore/Middleware/HttpExceptionMiddleware.cs index a0befbf3..fcc226ef 100644 --- a/Source/Boxed.AspNetCore/Middleware/HttpExceptionMiddleware.cs +++ b/Source/Boxed.AspNetCore/Middleware/HttpExceptionMiddleware.cs @@ -11,26 +11,34 @@ namespace Boxed.AspNetCore.Middleware; /// The handling middleware. /// /// -public class HttpExceptionMiddleware : IMiddleware +public class HttpExceptionMiddleware { + private readonly RequestDelegate next; private readonly HttpExceptionMiddlewareOptions options; /// /// Initializes a new instance of the class. /// + /// The next middleware. /// The options. - public HttpExceptionMiddleware(HttpExceptionMiddlewareOptions options) => + public HttpExceptionMiddleware(RequestDelegate next, HttpExceptionMiddlewareOptions options) + { + this.next = next; this.options = options; + } - /// - public async Task InvokeAsync(HttpContext context, RequestDelegate next) + /// + /// Request handling method. + /// + /// The for the current request. + /// A that represents the execution of this middleware. + public async Task InvokeAsync(HttpContext context) { ArgumentNullException.ThrowIfNull(context); - ArgumentNullException.ThrowIfNull(next); try { - await next.Invoke(context).ConfigureAwait(false); + await this.next.Invoke(context).ConfigureAwait(false); } catch (HttpException httpException) { diff --git a/Source/Boxed.AspNetCore/Middleware/RequestCanceledMiddleware.cs b/Source/Boxed.AspNetCore/Middleware/RequestCanceledMiddleware.cs index 02d43f9d..0d52b3e8 100644 --- a/Source/Boxed.AspNetCore/Middleware/RequestCanceledMiddleware.cs +++ b/Source/Boxed.AspNetCore/Middleware/RequestCanceledMiddleware.cs @@ -10,33 +10,40 @@ namespace Boxed.AspNetCore.Middleware; /// shortcuts and returns an error status code. /// /// -public class RequestCanceledMiddleware : IMiddleware +public class RequestCanceledMiddleware { private readonly ILogger logger; + private readonly RequestDelegate next; private readonly RequestCanceledMiddlewareOptions options; /// /// Initializes a new instance of the class. /// + /// The next middleware. /// The middleware options. /// A logger. public RequestCanceledMiddleware( + RequestDelegate next, RequestCanceledMiddlewareOptions options, ILogger logger) { + this.next = next; this.options = options; this.logger = logger; } - /// - public async Task InvokeAsync(HttpContext context, RequestDelegate next) + /// + /// Request handling method. + /// + /// The for the current request. + /// A that represents the execution of this middleware. + public async Task InvokeAsync(HttpContext context) { ArgumentNullException.ThrowIfNull(context); - ArgumentNullException.ThrowIfNull(next); try { - await next(context).ConfigureAwait(false); + await this.next(context).ConfigureAwait(false); } catch (OperationCanceledException operationCanceledException) when (operationCanceledException.CancellationToken == context.RequestAborted) diff --git a/Tests/Boxed.AspNetCore.Test/Middleware/RequestCanceledMiddlewareTest.cs b/Tests/Boxed.AspNetCore.Test/Middleware/RequestCanceledMiddlewareTest.cs index 2ba44676..636a4e1e 100644 --- a/Tests/Boxed.AspNetCore.Test/Middleware/RequestCanceledMiddlewareTest.cs +++ b/Tests/Boxed.AspNetCore.Test/Middleware/RequestCanceledMiddlewareTest.cs @@ -32,9 +32,10 @@ public void InvokeAsync_NullNext_ThrowsArgumentNullException() => public async Task InvokeAsync_RequestNotCanceled_RunsNextMiddlewareAsync() { await new RequestCanceledMiddleware( + this.next, new RequestCanceledMiddlewareOptions(), new Mock>().Object) - .InvokeAsync(this.context, this.next) + .InvokeAsync(this.context) .ConfigureAwait(false); Assert.Equal(200, this.context.Response.StatusCode); @@ -52,9 +53,10 @@ public async Task InvokeAsync_OperationCanceledExceptionThrownNotCanceled_RunsNe await Assert .ThrowsAsync(() => new RequestCanceledMiddleware( + this.next, new RequestCanceledMiddlewareOptions(), new Mock>().Object) - .InvokeAsync(this.context, this.next)) + .InvokeAsync(this.context)) .ConfigureAwait(false); } @@ -67,9 +69,10 @@ public async Task InvokeAsync_RequestCanceled_Returns499ClientClosedRequestAsync this.next = x => Task.FromCanceled(cancellationTokenSource.Token); await new RequestCanceledMiddleware( + this.next, new RequestCanceledMiddlewareOptions(), new Mock>().Object) - .InvokeAsync(this.context, this.next) + .InvokeAsync(this.context) .ConfigureAwait(false); Assert.Equal(RequestCanceledMiddlewareOptions.ClientClosedRequest, this.context.Response.StatusCode);