private async Task HandleErrors(HttpContext context) { context.Response.StatusCode = 500; context.Response.ContentType = "application/json"; var error = context.Features.Get <IExceptionHandlerFeature>(); var res = new ErrorModel { Code = context.Response.StatusCode, Message = "Request processing error" }; if (error != null) { var ex = error.Error; while (ex != null) { var message = ex.Message ?? GetExDescription(ex); res.AddError(ex.Source, message); ex = ex.InnerException; } var result = JsonConvert.SerializeObject(res); await context.Response.WriteAsync(result, Encoding.UTF8); } }
public override void OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { var result = new ErrorModel(400, "Incorrect request model"); foreach (var modelStateKey in context.ModelState.Keys) { var value = context.ModelState[modelStateKey]; foreach (var error in value.Errors) { result.AddError(modelStateKey, error.ErrorMessage); } } context.Result = new BadRequestObjectResult(result); } }