/// <summary> /// /// </summary> /// <param name="context"></param> public override void OnException(ExceptionContext context) { if (context.Exception is DomainForbiddenException) { context.Result = new ForbidResult(); } if (context.Exception is DomainBaseException ex) { ApiExceptionResult result = new ApiExceptionResult() { Message = ex.Message, ErrorTypeCode = (int)ex.GetExceptionTypeCode(), ErrorTypeName = ex.GetExceptionTypeDescription(), RelatedField = ex.RelatedField, RelatedObject = ex.RelatedObject.FullName }; if (ex.GetErrorType() == HttpErrorType.Client) { context.Result = new BadRequestObjectResult(result); } if (ex.GetErrorType() == HttpErrorType.NotFound) { context.Result = new NotFoundObjectResult(result); } } }
public void OnException(ExceptionContext context) { if (context.Exception is ApiDomainException domainException) { //var aggregateMessage = domainException.Messages == null // ? context.Exception.Message // : JsonConvert.SerializeObject(domainException.Messages); //_logger.LogError(new EventId(context.Exception.HResult), // context.Exception, // aggregateMessage); var result = ApiErrorResult.BadRequest(domainException.Messages ?? new[] { context.Exception.Message }); context.Result = new BadRequestObjectResult(result); context.HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest; } else { _logger.LogError(new EventId(context.Exception.HResult), context.Exception, context.Exception.Message); object devMessage = null; if (_env.IsDevelopment()) { devMessage = LogFormatter.PrintException(context.Exception); } var result = ApiExceptionResult.InternalServerError(new[] { "An server error occur." }, devMessage); context.Result = new InternalServerErrorObjectResult(result); context.HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError; } context.ExceptionHandled = true; }
public InternalServerErrorObjectResult ServerError(int status = StatusCodes.Status500InternalServerError, params string[] messages) { var result = ApiExceptionResult.InternalServerError(messages); return(new InternalServerErrorObjectResult(result)); }
public InternalServerErrorObjectResult ServerError(params string[] messages) { var result = ApiExceptionResult.GatewayTimeout(messages); return(new InternalServerErrorObjectResult(result)); }
public InternalServerErrorObjectResult Timeout(int status = StatusCodes.Status504GatewayTimeout, params string[] messages) { var result = ApiExceptionResult.GatewayTimeout(messages, status); return(new InternalServerErrorObjectResult(result, result.Status)); }
public InternalServerErrorObjectResult Timeout(object messages) { var result = ApiExceptionResult.GatewayTimeout(messages); return(new InternalServerErrorObjectResult(result, result.Status)); }