Beispiel #1
0
 public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
 {
     if (!context.ModelState.IsValid)
     {
         //Log Context
         _logger.Debug(OpenApiErrorCodes.InvalidModelState, context.JsonSerialize());
         var openapiErrorResult = new OpenApiErrorResult();
         openapiErrorResult.StatusCode       = OpenApiErrorCodes.InvalidModelState.ToString();
         openapiErrorResult.StatusMessage    = OpenApiErrorCodes.InvalidModelState.GetDescription();
         openapiErrorResult.ValidationResult = context.ModelState;
         context.Result = new BadRequestObjectResult(context.ModelState);
         return;
     }
     await next();
 }
        /// <summary>
        /// This method will automatically trigger when any exception occurs in application level.
        /// </summary>
        /// <param name="context"></param>
        public void OnException(ExceptionContext context)
        {
            HttpStatusCode statusCode = (context.Exception as WebException != null &&
                                         ((HttpWebResponse)(context.Exception as WebException).Response) != null) ?
                                        ((HttpWebResponse)(context.Exception as WebException).Response).StatusCode
                         : GetErrorCode(context.Exception.GetType());
            string errorMessage = context.Exception.Message;
            string stackTrace   = context.Exception.StackTrace;

            HttpResponse response = context.HttpContext.Response;

            response.StatusCode  = (int)statusCode;
            response.ContentType = "application/json";
            OpenApiErrorResult openApiErrorResult = new OpenApiErrorResult();

            openApiErrorResult.StatusMessage = errorMessage;
            openApiErrorResult.StatusCode    = statusCode.ToString();
            string httpJson = openApiErrorResult.JsonSerialize();

            response.ContentLength = httpJson.Length;
            response.WriteAsync(httpJson);
        }