Ejemplo n.º 1
0
        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);
     }
 }