示例#1
0
        private static IList <Func <string, string> > GetControllerPathTransformations(Controller controller, string customPath)
        {
            var packagesManager     = new PackageManager();
            var currentPackage      = packagesManager.GetCurrentPackage();
            var pathTransformations = new List <Func <string, string> >();

            if (controller.RouteData != null && controller.RouteData.Values.ContainsKey("widgetName"))
            {
                var widgetName     = (string)controller.RouteData.Values["widgetName"];
                var controllerType = FrontendManager.ControllerFactory.ResolveControllerType(widgetName);
                var widgetVp       = AppendDefaultPath(FrontendManager.VirtualPathBuilder.GetVirtualPath(controllerType));
                pathTransformations.Add(FrontendControllerFactory.GetPathTransformation(widgetVp, currentPackage, widgetName));
            }

            var controllerVp = customPath ?? AppendDefaultPath(FrontendManager.VirtualPathBuilder.GetVirtualPath(controller.GetType().Assembly));

            pathTransformations.Add(FrontendControllerFactory.GetPathTransformation(controllerVp, currentPackage));

            var frontendVp = AppendDefaultPath(FrontendManager.VirtualPathBuilder.GetVirtualPath(typeof(FrontendControllerFactory).Assembly));

            if (!string.Equals(controllerVp, frontendVp, StringComparison.OrdinalIgnoreCase))
            {
                pathTransformations.Add(FrontendControllerFactory.GetPathTransformation(frontendVp, currentPackage));
            }

            return(pathTransformations);
        }
示例#2
0
        private static void AddDynamicControllerPathTransformations(Controller controller, string virtualPath, string currentPackage, List <Func <string, string> > pathTransformations)
        {
            if (controller != null && controller.Request != null && controller.Request.QueryString != null && controller.RouteData != null && controller.RouteData.Values.ContainsKey("widgetName") && (string)controller.RouteData.Values["widgetName"] == "DynamicContent")
            {
                var  controlId = controller.Request.QueryString["controlId"] as string;
                Guid controlIdGuid;

                if (!string.IsNullOrEmpty(controlId) && Guid.TryParse(controlId, out controlIdGuid))
                {
                    var controlObjectData = PageManager.GetManager().GetControl <ObjectData>(controlIdGuid);

                    if (controlObjectData != null && controlObjectData.Properties != null)
                    {
                        var controllerWidgetProperty = controlObjectData.Properties.FirstOrDefault(x => x.Name == "WidgetName");
                        if (controllerWidgetProperty != null)
                        {
                            var dynamicControllerWidgetName = controllerWidgetProperty.Value;
                            if (!string.IsNullOrEmpty(dynamicControllerWidgetName))
                            {
                                pathTransformations.Add(FrontendControllerFactory.GetPathTransformation(virtualPath, currentPackage, dynamicControllerWidgetName));
                            }
                        }
                    }
                }
            }
        }
        private static void AddDynamicControllerPathTransformations(Controller controller, string virtualPath, string currentPackage, List <Func <string, string> > pathTransformations)
        {
            var dynamicControllerWidgetName = controller.ResolveDynamicControllerWidgetName();

            if (string.IsNullOrEmpty(dynamicControllerWidgetName))
            {
                return;
            }

            pathTransformations.Add(FrontendControllerFactory.GetPathTransformation(virtualPath, currentPackage, dynamicControllerWidgetName));
        }