Developer 02 b38422256c 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.
2025-05-19 14:24:10 +02:00

15 lines
857 B
C#

using System.Net;
namespace DigitalData.Core.Exceptions.Middleware;
public record HttpExceptionMapping(Type ExceptionType, HttpStatusCode StatusCode, Func<Exception, string>? MessageFactory = null, bool Log = false)
{
public static HttpExceptionMapping Create<TException>(HttpStatusCode statusCode, Func<Exception, string>? messageFactory = null) where TException : Exception
=> new HttpExceptionMapping(typeof(TException), statusCode, messageFactory);
public static readonly Func<Exception, string>? DefaultMessageFactory = ex => ex.Message;
public static readonly HttpExceptionMapping DefaultBadRequest = Create<BadRequestException>(HttpStatusCode.BadRequest, DefaultMessageFactory);
public static readonly HttpExceptionMapping DefaultNotFound = Create<NotFoundException>(HttpStatusCode.NotFound, DefaultMessageFactory);
};