Asmin.Core.Utilities.Middleware.API.APIExceptionMiddleware.InvokeAsync C# (CSharp) Method

InvokeAsync() public method

public InvokeAsync ( HttpContext context ) : Task
context HttpContext
return Task
        public async Task InvokeAsync(HttpContext context)
        {
            object message = null;

            try
            {
                await _next(context);
            }
            catch (AuthorizationException e)
            {
                context.Response.StatusCode = StatusCodes.Status401Unauthorized;
                message = new ExceptionMessage(StatusCodes.Status401Unauthorized, e.Message);
            }
            catch (AspectException e)
            {
                context.Response.StatusCode = StatusCodes.Status500InternalServerError;
                message = new ExceptionMessage(StatusCodes.Status500InternalServerError, ASPECT_ERROR_MESSAGE);
            }
            catch (Exception e)
            {
                context.Response.StatusCode = StatusCodes.Status500InternalServerError;
                message = new ExceptionMessage(StatusCodes.Status500InternalServerError, SERVER_ERROR_MESSAGE);
            }

            if (message != null)
            {
                await context.Response.WriteAsync(JsonConvert.SerializeObject(message));
            }
        }
    }