diff options
| author | transtrike <transtrike@gmail.com> | 2021-01-19 21:12:49 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2021-01-19 21:12:49 +0200 |
| commit | 90e0126d4078b5fef44b085b34caf7a35161ff50 (patch) | |
| tree | b7f4692b52444caebd9931115c91aefc97b2ebb3 /src/DevHive.Web/Models | |
| parent | 33b5f6297c2c975bec8a74a8facc208261c03c9e (diff) | |
| download | DevHive-90e0126d4078b5fef44b085b34caf7a35161ff50.tar DevHive-90e0126d4078b5fef44b085b34caf7a35161ff50.tar.gz DevHive-90e0126d4078b5fef44b085b34caf7a35161ff50.zip | |
Added Custom Middleware for Exception Handling
Diffstat (limited to 'src/DevHive.Web/Models')
| -rw-r--r-- | src/DevHive.Web/Models/Middleware/ExceptionMiddleware.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/DevHive.Web/Models/Middleware/ExceptionMiddleware.cs b/src/DevHive.Web/Models/Middleware/ExceptionMiddleware.cs new file mode 100644 index 0000000..d952ff4 --- /dev/null +++ b/src/DevHive.Web/Models/Middleware/ExceptionMiddleware.cs @@ -0,0 +1,50 @@ +using System; +using System.Net; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; + +namespace DevHive.Web.Models.Middleware +{ + public class ExceptionMiddleware + { + private readonly RequestDelegate _next; + // private readonly ILogger _logger; + + public ExceptionMiddleware(RequestDelegate next) + { + this._next = next; + // this._logger = logger; + } + // public ExceptionMiddleware(RequestDelegate next, ILogger logger) + // { + // this._logger = logger; + // this._next = next; + // } + + public async Task InvokeAsync(HttpContext httpContext) + { + try + { + await this._next(httpContext); + } + catch (Exception ex) + { + // this._logger.LogError($"Something went wrong: {ex}"); + await HandleExceptionAsync(httpContext, ex); + } + } + + private Task HandleExceptionAsync(HttpContext context, Exception exception) + { + context.Response.ContentType = "application/json"; + context.Response.StatusCode = (int)HttpStatusCode.BadRequest; + + return context.Response.WriteAsync(new + { + StatusCode = context.Response.StatusCode, + Message = "Internal Server Error from the custom middleware." + }.ToString()); + } + } +} |
