internal static Task HandleHttpStatusException(this IOwinContext context, HttpStatusException exception, HandlerSettings options, string contentType = "application/json") { context.Response.StatusCode = (int) exception.StatusCode; context.Response.ReasonPhrase = exception.StatusCode.ToString(); context.Response.ContentType = contentType; ExceptionModel exceptionModel = options.ExceptionToModelConverter.Convert(exception); string exceptionJson = options.Serializer.Serialize(exceptionModel); byte[] exceptionBytes = Encoding.UTF8.GetBytes(exceptionJson); context.Response.ContentLength = exceptionBytes.Length; return context.Response.WriteAsync(exceptionBytes); }
internal static Task HandleInternalServerError(this IOwinContext context, Exception ex, HandlerSettings options) { var exception = new HttpStatusException(ex.Message, 500, ex); return HandleHttpStatusException(context, exception, options); }
internal static Task HandleBadRequest(this IOwinContext context, InvalidOperationException ex, HandlerSettings options) { var exception = new HttpStatusException(ex.Message, 400, ex); return HandleHttpStatusException(context, exception, options); }