public async Task Invoke(HttpContext context) { try { await _next(context); } catch (Exception ex) { if (ex is EasyRbacException) { context.Response.StatusCode = 400; } else { context.Response.StatusCode = 500; } context.Response.ContentType = "application/json"; var errObj = new ErroResponse() { Message = ex.Message }; var json = JsonConvert.SerializeObject(errObj, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }); //context.Response.ContentLength = json.Length; var body = Encoding.UTF8.GetBytes(json); context.Response.ContentLength = body.Length; await context.Response.WriteAsync(json, Encoding.UTF8); await ClearCacheHeaders(ex); } }
public void OnException(ExceptionContext context) { context.Result = new ObjectResult(ErroResponse.From(context.Exception)) { StatusCode = 500 }; }
public static IActionResult ProduceErrorResponse(ActionContext context) { var erros = context.ModelState.GetMensagemErros(); var response = new ErroResponse(mensagens: erros); return(new BadRequestObjectResult(response)); }
public IActionResult Incluir([FromForm] LivroUpload model) { if (ModelState.IsValid) { var livro = model.ToLivro(); _repo.Incluir(livro); var uri = Url.Action("Recuperar", new { id = livro.Id }); return(Created(uri, livro.ToApi())); //201 } return(BadRequest(ErroResponse.FromModelStateError(ModelState))); }
/// <summary>Forbid behavior.</summary> /// <param name="properties">The <see cref="T:Microsoft.AspNetCore.Authentication.AuthenticationProperties" /> that contains the extra meta-data arriving with the authentication.</param> /// <returns>A task.</returns> public async Task ForbidAsync(AuthenticationProperties properties) { this.context.Response.StatusCode = 403; var error = new ErroResponse() { Message = "没有操作权限" }; var bytes = Encoding.UTF8.GetBytes(error.ToJson()); this.context.Response.ContentType = "application/json;charset=utf-8"; await this.context.Response.Body.WriteAsync(bytes); }
public IActionResult Alterar([FromForm] LivroUpload model) { if (ModelState.IsValid) { var livro = model.ToLivro(); if (model.Capa == null) { livro.ImagemCapa = _repo.All .Where(l => l.Id == livro.Id) .Select(l => l.ImagemCapa) .FirstOrDefault(); } _repo.Alterar(livro); return(Ok()); //200 } return(BadRequest(ErroResponse.FromModelStateError(ModelState))); }