| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Net;
-
- namespace BlackRock.Reporting.API.Exceptions
- {
- public class ExceptionHandler : IExceptionHandler
- {
- private readonly ILogger<ExceptionHandler> logger;
-
- public ExceptionHandler(ILogger<ExceptionHandler> logger)
- {
- this.logger = logger;
- }
- public Error HandleException(Exception exception)
- {
- var error = exception switch
- {
- DomainException domainException => HandleDomainException(domainException),
- ResourceNotFoundException resourceNotFoundException => HandleResourceNotFoundException(resourceNotFoundException)
- };
-
- return error;
- }
-
- private Error HandleResourceNotFoundException(ResourceNotFoundException resourceNotFoundException)
- {
- logger.LogInformation(resourceNotFoundException, resourceNotFoundException.Message);
-
- return
- new Error
- {
- Title = resourceNotFoundException.Message,
- StatusCode = HttpStatusCode.BadRequest
- };
- }
-
- private Error HandleDomainException(DomainException domainException)
- {
- logger.LogInformation(domainException, domainException.Message);
-
- return
- new Error
- {
- Title = domainException.Message,
- StatusCode = HttpStatusCode.BadRequest
- };
- }
- private Error HandleUnhandledException(Exception exception)
- {
- logger.LogInformation(exception, exception.Message);
-
- return
- new Error
- {
- Title = exception.Message,
- StatusCode = HttpStatusCode.InternalServerError
- };
- }
- }
- }
|