public GridControlGraphType() { //TODO: Replace with HtmlNodeGraphType? Name = "GridControl"; Field <GridValueGraphType>( "value", resolve: context => { var userContext = (UmbracoGraphQLContext)context.UserContext; var routeData = new RouteData(); routeData.Values["controller"] = "RenderMvc"; using (var controller = new RenderMvcController()) { var controllerContext = new ControllerContext(userContext.UmbracoContext.HttpContext, routeData, controller); var result = ViewEngines.Engines.FindPartialView(controllerContext, "Grid/Editors/Base"); using (var writer = new StringWriter()) { var viewData = new ViewDataDictionary(context.Source); result.View.Render( new ViewContext(controllerContext, result.View, viewData, controllerContext.Controller.TempData, writer), writer); return(writer.ToString()); } } }); Field <NonNullGraphType <GridEditorGraphType> >( "editor", resolve: context => context.Source["editor"] ); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { RenderMvcController controller = filterContext.Controller as RenderMvcController; if (controller == null) { return; } var currentUrl = filterContext.HttpContext.Request.Url; if (currentUrl == null) { return; } var rootPage = _umbracoContextAccessor.UmbracoContext .Content .GetAtRoot() .FirstOrDefault(rp => currentUrl.AbsoluteUri.StartsWith(rp.Url(mode: UrlMode.Absolute))); if (rootPage == null) { return; } var page = _umbracoContextAccessor.UmbracoContext .Content .GetByRoute($"{rootPage.Id}{currentUrl.AbsolutePath}") as IPage; if (string.IsNullOrWhiteSpace(page?.ExternalRedirect)) { return; } filterContext.HttpContext.Response.Redirect(page.ExternalRedirect); }