diff --git a/EnvelopeGenerator.Domain/Exceptions/AuthorizationException.cs b/EnvelopeGenerator.Domain/Exceptions/AuthorizationException.cs new file mode 100644 index 00000000..e610d452 --- /dev/null +++ b/EnvelopeGenerator.Domain/Exceptions/AuthorizationException.cs @@ -0,0 +1,17 @@ +#if NETFRAMEWORK +using System; +#endif + +namespace EnvelopeGenerator.Domain.Exceptions +{ + public class AuthorizationException : Exception + { + public AuthorizationException(string message) : base(message) + { + } + + public AuthorizationException() + { + } + } +} diff --git a/EnvelopeGenerator.Domain/Exceptions/DataIntegrityException.cs b/EnvelopeGenerator.Domain/Exceptions/DataIntegrityException.cs index 0974286d..4b633d0c 100644 --- a/EnvelopeGenerator.Domain/Exceptions/DataIntegrityException.cs +++ b/EnvelopeGenerator.Domain/Exceptions/DataIntegrityException.cs @@ -9,5 +9,9 @@ namespace EnvelopeGenerator.Domain.Exceptions public DataIntegrityException(string message) : base(message) { } + + public DataIntegrityException() : base() + { + } } } diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Middleware/ExceptionHandlingMiddleware.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Middleware/ExceptionHandlingMiddleware.cs index e14ecb68..b9592e72 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Middleware/ExceptionHandlingMiddleware.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Middleware/ExceptionHandlingMiddleware.cs @@ -1,6 +1,7 @@ namespace EnvelopeGenerator.Server.Middleware; using DigitalData.Core.Exceptions; +using EnvelopeGenerator.Domain.Exceptions; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System.Net; @@ -74,6 +75,16 @@ public class ExceptionHandlingMiddleware message = forbiddenEx.Message; break; + case AuthorizationException authorizationEx: + context.Response.StatusCode = (int)HttpStatusCode.Forbidden; + message = authorizationEx.Message; + break; + + case DataIntegrityException dataIntegrityEx: + context.Response.StatusCode = (int)HttpStatusCode.Conflict; + message = dataIntegrityEx.Message; + break; + default: logger.LogError(exception, "Unhandled exception occurred."); context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;