private static object GenerateForEmbeddedRule(EntityRule rule, IActionConfiguration actionConfiguration, Dictionary <string, List <string> > routeRelations, object originalObject) { var actionExecutedContext = ActionCallContext.Get <HttpActionExecutedContext>(); var entityActionConfiguration = HypermediaControllerConfiguration.Instance.GetcontrollerActionConfiguration(rule.ControllerType, rule.ControllerAction, actionExecutedContext.Request.Headers.Accept); if (entityActionConfiguration == null) { return(null); } var referencedObject = rule.GetReferencedObjectInstance(originalObject); if (referencedObject == null) { return(null); } var transformed = ActionResponseTransformer.TransformPayload(entityActionConfiguration, referencedObject); if (transformed == null) { return(null); } if (transformed is IEnumerable) { throw new Exception(string.Format("Unable to generate enumerable entity object from controller {0} action {1}. Consider using outer object.", actionConfiguration.ControllerType.FullName, actionConfiguration.ActionMethodInfo)); } AssignRelName(transformed, rule.Rel); return(transformed); }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { var content = ActionResponseTransformer.Transform(actionExecutedContext); if (content == null) { return; } actionExecutedContext.Response.Content = content; }