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);
        }
Example #2
0
        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);
        }