From b38422256c714f17cee5d8c5be670329f331bf28 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 19 May 2025 14:24:10 +0200 Subject: [PATCH] Enhance HttpExceptionMapping with logging and defaults Added optional 'Log' property to HttpExceptionMapping for specifying logging behavior. Introduced static readonly properties for default mappings of BadRequestException and NotFoundException using a default message factory. --- .../HttpExceptionMapping.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/DigitalData.Core.Exceptions.Middleware/HttpExceptionMapping.cs b/DigitalData.Core.Exceptions.Middleware/HttpExceptionMapping.cs index e87c45c..153f92e 100644 --- a/DigitalData.Core.Exceptions.Middleware/HttpExceptionMapping.cs +++ b/DigitalData.Core.Exceptions.Middleware/HttpExceptionMapping.cs @@ -2,8 +2,14 @@ namespace DigitalData.Core.Exceptions.Middleware; -public record HttpExceptionMapping(Type ExceptionType, HttpStatusCode StatusCode, Func? MessageFactory = null) +public record HttpExceptionMapping(Type ExceptionType, HttpStatusCode StatusCode, Func? MessageFactory = null, bool Log = false) { public static HttpExceptionMapping Create(HttpStatusCode statusCode, Func? messageFactory = null) where TException : Exception => new HttpExceptionMapping(typeof(TException), statusCode, messageFactory); + + public static readonly Func? DefaultMessageFactory = ex => ex.Message; + + public static readonly HttpExceptionMapping DefaultBadRequest = Create(HttpStatusCode.BadRequest, DefaultMessageFactory); + + public static readonly HttpExceptionMapping DefaultNotFound = Create(HttpStatusCode.NotFound, DefaultMessageFactory); }; \ No newline at end of file