예제 #1
0
        protected bool ResponseHasErrors(ResponseErrorResult response)
        {
            if (response == null || !response.Errors.Messages.Any())
            {
                return(false);
            }

            foreach (var mensagem in response.Errors.Messages)
            {
                AddErrorInProcess(mensagem);
            }

            return(true);
        }
        protected bool HasErrorsInResponse(ResponseErrorResult response)
        {
            if (response != null && response.Errors.Messages.Any())
            {
                foreach (var message in response.Errors.Messages)
                {
                    ModelState.AddModelError(string.Empty, message);
                }

                return(true);
            }

            return(false);
        }
예제 #3
0
        private async Task WriteExceptionAsync(HttpContext context, Exception exception)
        {
            //返回友好的提示
            var response = context.Response;

            //状态码
            if (exception is UnauthorizedAccessException)
            {
                response.StatusCode = (int)HttpStatusCode.Unauthorized;
            }
            else if (exception != null)
            {
                response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

            response.ContentType = context.Request.Headers["Accept"];

            if (response.ContentType.ToLower() == "application/xml")
            {
                var result = new ResponseErrorResult <object>
                {
                    ErrorCode    = -9999,
                    ErrorMessage = exception.GetBaseException().ToString(),
                };
                _logger.LogError($@"错误原因为:{exception.GetBaseException().Message},错误详细为:{exception.GetBaseException().ToString()}");
                await response.WriteAsync(Object2XmlString(result)).ConfigureAwait(false);
            }
            else
            {
                response.ContentType = "application/json;charset=utf-8";
                var result = new ResponseErrorResult <object>
                {
                    ErrorCode    = -9999,
                    ErrorMessage = exception.GetBaseException().Message,
                };
                _logger.LogError($@"错误原因为:{exception.GetBaseException().Message},错误详细为:{exception.GetBaseException().ToString()}");
                await response.WriteAsync(JsonConvert.SerializeObject(result)).ConfigureAwait(false);
            }
        }
        public ActionResult <ResponseBase> GetResult500()
        {
            var result = new ResponseErrorResult
            {
                StatusCodes = StatusCodes.Status500InternalServerError.ToString(),
                Results     = new object[]
                {
                    new ProblemDetails()
                    {
                        Status     = StatusCodes.Status400BadRequest,
                        Type       = "https://tools.ietf.org/html/rfc7807",
                        Title      = "BadRequest",
                        Detail     = "One or more client problem.",
                        Instance   = HttpContext.Request.Path,
                        Extensions =
                        {
                            ["tracking-id"] = "9527"
                        }
                    }
                }
            };

            return(result);
        }
예제 #5
0
        protected ActionResult CustomResponse(ResponseErrorResult response)
        {
            ResponseHasErrors(response);

            return(CustomResponse());
        }