public override void OnException(ExceptionContext context) { IknownException knownException = context.Exception as IknownException; if (knownException == null) { var logger = context.HttpContext.RequestServices.GetService <ILogger <MyExceptionFilterAttribute> >(); logger.LogError(context.Exception, context.Exception.Message); knownException = KnownException.Unknown; context.HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError; } else { knownException = KnownException.FromKnownException(knownException); context.HttpContext.Response.StatusCode = StatusCodes.Status200OK; } context.Result = new JsonResult(knownException) { ContentType = "application/json;charset=utf-8" }; }
public static IknownException FromKnownException(IknownException exceptoin) { return(new KnownException { Message = exceptoin.Message, ErrorCode = exceptoin.ErrorCode, ErrorData = exceptoin.ErrorData }); }