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.
15 lines
857 B
C#
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);
|
|
}; |