public void OnException(IExceptionContext exceptionContext) { var context = (HttpActionExecutedContext)exceptionContext.Context; IExceptionAdapter exceptionAdapter = exceptionAdapterFactory.GetAdapter(context.Exception); var response = context.Request.CreateResponse(exceptionAdapter.HttpStatusCode, exceptionAdapter.Content); if (exceptionAdapter.ExtraHeaders != null) { foreach (var headerItem in exceptionAdapter.ExtraHeaders) { response.Headers.Add(headerItem.Key, headerItem.Value); } } context.Response = response; }
public void OnException(IExceptionContext exceptionContext) { var context = (ExceptionContext)exceptionContext; IExceptionAdapter exceptionAdapter = exceptionAdapterFactory.GetAdapter(context.Exception); context.FilterContext.HttpContext.Response.StatusCode = (int)exceptionAdapter.HttpStatusCode; var response = new HttpResponseMessage(exceptionAdapter.HttpStatusCode); if (exceptionAdapter.ExtraHeaders != null) { foreach (var headerItem in exceptionAdapter.ExtraHeaders) { context.FilterContext.HttpContext.Response.Headers.Add(headerItem.Key, headerItem.Value); } } context.SetResult(new JsonResult(exceptionAdapter.Content)); }