private static Task ApiException(HttpContext context, ApiException exception) { var apiResponse = exception.ToApiResponse(); var statusCode = (int)apiResponse.StatusCode; if (exception is PermanentRedirectException) { statusCode = 308; var location = $"{Api.ApiSettings.AppUrl.Trim('/')}{context.Request.Path}{context.Request.QueryString}"; context.Response.Headers["Location"] = location; } context.Response.ContentType = "application/json"; context.Response.StatusCode = statusCode; if (apiResponse.Content != null && ChangeErrorFormat == null) { context.Response.WriteAsync(JsonConvert.SerializeObject(apiResponse.Content, JsonSerializerService.JsonSerializerSettings)).Wait(); context.Response.Body.Position = 0; } else if (ChangeErrorFormat != null) { var content = ChangeErrorFormat.Invoke(exception); context.Response.WriteAsync(JsonConvert.SerializeObject(content, JsonSerializerService.JsonSerializerSettings)).Wait(); context.Response.Body.Position = 0; } return(Task.CompletedTask); }
private static Task ApiException(HttpContext context, ApiException exception) { var apiResponse = exception.ToApiResponse(); context.Response.ContentType = "application/json"; context.Response.StatusCode = (int)apiResponse.StatusCode; if (apiResponse.Content != null) { context.Response.WriteAsync(JsonConvert.SerializeObject(apiResponse.Content, JsonSerializerService.JsonSerializerSettings)).Wait(); context.Response.Body.Position = 0; } return(Task.CompletedTask); }