public virtual void InternalActionExecuted(HttpActionExecutedContext context, CancellationToken cancellationToken) { var content = context.Response.Content as ObjectContent; if (content == null) { return; } var relationshipPaths = FindRelationshipPathsToInclude(context.Request); if (!configuration.ValidateIncludedRelationshipPaths(relationshipPaths, content.Value)) { context.Response = context.Request.CreateResponse(HttpStatusCode.BadRequest); } if (!context.Response.IsSuccessStatusCode) { return; } var jsonApiContext = new Context(context.Request.RequestUri, relationshipPaths); var transformedIntoJsonApi = jsonApiTransformer.Transform(content.Value, jsonApiContext); context.Response = context.Request.CreateResponse(HttpStatusCode.OK, transformedIntoJsonApi, configuration.DefaultJsonApiMediaType); }
public override void OnActionExecuted(ActionExecutedContext context) { if (context.Result == null) { return; } if (BadActionResultTransformer.IsBadAction(context.Result)) { var transformed = BadActionResultTransformer.Transform(context.Result); context.Result = new ObjectResult(transformed) { StatusCode = transformed.Errors.First().Status }; return; } var responseResult = (ObjectResult)context.Result; var relationshipPaths = FindRelationshipPathsToInclude(context.HttpContext.Request); if (!configuration.ValidateIncludedRelationshipPaths(relationshipPaths, responseResult.Value)) { context.Result = new HttpStatusCodeResult(400); return; } var jsonApiContext = new Context( configuration, new Uri(context.HttpContext.Request.GetDisplayUrl()), relationshipPaths); responseResult.Value = jsonApiTransformer.Transform(responseResult.Value, jsonApiContext); }
public override void OnException(ExceptionContext context) { context.Result = new ObjectResult( jsonApiTransformer.Transform( context.Exception, 500)); context.HttpContext.Response.StatusCode = 500; }
public override void OnException(ExceptionContext context) { context.Result = new ObjectResult(jsonApiTransformer.Transform(context.Exception)); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; }