public void OnException(ExceptionContext context) { int statusCode = -1; EventId eventId = new EventId(context.Exception.HResult); _logger.LogError(eventId, context.Exception, context.Exception.Message); switch (context.Exception.GetType().Name) { case "StackException": statusCode = (int)HttpStatusCode.BadRequest; break; case "NotFoundException": statusCode = (int)HttpStatusCode.NotFound; break; default: statusCode = (int)HttpStatusCode.InternalServerError; break; } RespContainer <JsonException> container = RespContainer.Fail(new JsonException { EventId = statusCode }, Regex.Unescape(context.Exception.Message)); if (context.Exception is StackException we && (we.Errors.Count > 0)) { container.Data.DetailedMessages = we.Errors; }
/// <summary> /// GetExamples /// </summary> /// <returns></returns> public RespContainer <JsonException> GetExamples() { JsonException exception = new JsonException { EventId = 400 }; exception.DetailedMessages.Add("Username or Password is wrong"); return(RespContainer.Fail(exception, "Credentials not sufficient")); }