Beispiel #1
0
        public string GetModulePositionIdForUrl(ModulePosition modulePosition, RouteValueDictionary routeValues, out Page page)
        {
            page = this.PageRequestContext.Page;
            string modulePositionId = modulePosition.PagePositionId;

            if (!string.IsNullOrEmpty(modulePosition.Entry.LinkToEntryName))
            {
                foreach (var item in Kooboo.CMS.Sites.Services.ServiceFactory.PageManager.All(this.PageRequestContext.Site, null))
                {
                    foreach (var position in item.PagePositions.OfType <ModulePosition>())
                    {
                        if (position.Entry != null && !string.IsNullOrEmpty(position.Entry.Name) &&
                            position.Entry.Name.EqualsOrNullEmpty(modulePosition.Entry.LinkToEntryName, StringComparison.OrdinalIgnoreCase))
                        {
                            page             = item;
                            modulePositionId = position.PagePositionId;
                        }
                    }
                }
            }
            else
            {
                modulePositionId = GetModulePositionIdForUrl(modulePosition.ModuleName, modulePosition.PagePositionId, routeValues);
            }

            return(modulePositionId);
        }
Beispiel #2
0
        public void LoadModule(ModulePosition position)
        {
            switch (position)
            {
            case ModulePosition.Left:
                ModuleGrid.LeftSelection = _selectedModule;
                break;

            case ModulePosition.Right:
                ModuleGrid.RightSelection = _selectedModule;
                break;

            case ModulePosition.Top:
                ModuleGrid.TopSelection = _selectedModule;
                break;

            case ModulePosition.Middle:
                ModuleGrid.MiddleSelection = _selectedModule;
                break;

            case ModulePosition.Bottom:
                ModuleGrid.BottomSelection = _selectedModule;
                break;
            }
        }
Beispiel #3
0
        protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
        {
            var    positionType = controllerContext.HttpContext.Request["PositionType"];
            object model        = null;

            switch (positionType)
            {
            case "View":
                model = new ViewPosition();
                break;

            case "Module":
                model = new ModulePosition();
                break;

            case "Content":
                model = new HtmlPosition();
                break;

            default:
                break;
            }
            bindingContext.ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType());
            return(model);
        }
Beispiel #4
0
        public virtual IHtmlString RenderModule(string moduleName, string moduleUrl, ModulePosition modulePosition)
        {
            var result = ModuleExecutor.InvokeAction(PageContext.ControllerContext, PageContext.PageRequestContext.Site, moduleUrl, modulePosition);
            var actionResultExecuted = ModuleExecutor.ExecuteActionResult(result);

            return(new HtmlString(actionResultExecuted.ResultHtml));
        }
Beispiel #5
0
 /// <summary>
 /// <para>Adds given <paramref name="module"/> to configuration's <see cref="IClusterClientConfiguration.Modules"/> collection.</para>
 /// <para><paramref name="module"/> will be inserted into request module chain once near <paramref name="relatedModule"/>.</para>
 /// </summary>
 /// <param name="relatedModule">A module near which <paramref name="module"/> will be inserted.</param>
 /// <param name="module">A module to insert into request pipeline.</param>
 /// <param name="configuration">A configuration instance.</param>
 /// <param name="position">A relative position of <paramref name="module"/> from <paramref name="relatedModule"/>. This parameter is optional and has default value <see cref="ModulePosition.Before"/>.</param>
 public static void AddRequestModule(
     this IClusterClientConfiguration configuration,
     IRequestModule module,
     RequestModule relatedModule = RequestModule.Logging,
     ModulePosition position     = ModulePosition.Before)
 {
     configuration.AddRequestModule(module, RequestModulesMapping.GetModuleType(relatedModule), position);
 }
Beispiel #6
0
        /// <summary>
        /// Invokes the action return ActionResult
        /// </summary>
        /// <param name="controllerContext">The controller context.</param>
        /// <param name="actionName">Name of the action.</param>
        /// <returns></returns>
        public virtual ModuleActionInvokedContext InvokeActionWithoutExecuteResult(ModulePosition modulePosition, ControllerContext controllerContext, string actionName)
        {
            if (controllerContext == null)
            {
                throw new ArgumentNullException("controllerContext");
            }
            if (string.IsNullOrEmpty(actionName))
            {
                throw new ArgumentNullException("actionName");
            }

            ControllerDescriptor controllerDescriptor = this.GetControllerDescriptor(controllerContext);
            ActionDescriptor     actionDescriptor     = this.FindAction(controllerContext, controllerDescriptor, actionName);

            if (actionDescriptor == null)
            {
                return(null);
            }
            FilterInfo filters = this.GetFilters(controllerContext, actionDescriptor);

            try
            {
                //Default AuthorizationFilter
                AuthorizationContext context = this.InvokeAuthorizationFilters(controllerContext, filters.AuthorizationFilters, actionDescriptor);
                if (context.Result != null)
                {
                    return(new ModuleActionInvokedContext(modulePosition, controllerContext, context.Result));
                }

                ActionResult authorizationResult = null;//this.OnAuthorization(controllerContext, GetFilter<FunctionAttribute>((ReflectedActionDescriptor)actionDescriptor));
                if (authorizationResult != null)
                {
                    return(new ModuleActionInvokedContext(modulePosition, controllerContext, authorizationResult));
                }
                else
                {
                    if (controllerContext.Controller.ValidateRequest)
                    {
                        ValidateRequest(controllerContext.HttpContext.Request);
                    }
                    IDictionary <string, object> parameterValues = this.GetParameterValues(controllerContext, actionDescriptor);
                    ActionExecutedContext        context2        = this.InvokeActionMethodWithFilters(controllerContext, filters.ActionFilters, actionDescriptor, parameterValues);
                    //this.InvokeActionResultWithFilters(controllerContext, filters.ResultFilters, context2.Result);
                    return(new ModuleActionInvokedContext(modulePosition, controllerContext, context2.Result));
                }
            }
            catch (Exception exception)
            {
                ExceptionContext context3 = this.InvokeExceptionFilters(controllerContext, filters.ExceptionFilters, exception);
                if (!context3.ExceptionHandled)
                {
                    throw;
                }
                return(new ModuleActionInvokedContext(modulePosition, controllerContext, context3.Result));
            }
        }
Beispiel #7
0
        public static ModuleContext Create(string moduleName, Site site, ModulePosition position)
        {
            var context = new ModuleContext(moduleName, site, position);

            if (!System.IO.Directory.Exists(context.ModulePath.PhysicalPath))
            {
                throw new Exception(string.Format("The module does not exist.Module name:{0}".Localize(), moduleName));
            }
            return(context);
        }
Beispiel #8
0
        private void positionList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox       box         = (ComboBox)sender;
            ModulePosition newPosition = (ModulePosition)Reflection.CreateObjectByName(positionNames[box.SelectedIndex]);

            newPosition.SetOrder(writerReader.GetOrder());
            writerReader.SetPosition(newPosition);
            SetGUI(newPosition, positionParameter, positionHint);
            showSpaceValues();
        }
Beispiel #9
0
 public PageDesignModuleContent(ModulePosition pos)
     : base(pos)
 {
     this.Parameter.Add("ModuleName", PageDesignContent.Code(pos.ModuleName));
     this.Parameter.Add("Exclusive", pos.Exclusive.ToString().ToLower());
     if (pos.Entry != null)
     {
         this.Parameter.Add("EntryAction", pos.Entry.Action);
         this.Parameter.Add("EntryController", pos.Entry.Controller);
     }
 }
Beispiel #10
0
        protected virtual string RenderModule(ModulePosition modulePosition)
        {
            ModuleActionInvokedContext actionInvokedContext = GetModuleActionResult(modulePosition.PagePositionId);

            if (actionInvokedContext != null)
            {
                var actionResultExecuted = ModuleExecutor.ExecuteActionResult(actionInvokedContext);
                return(actionResultExecuted.ResultHtml);
            }
            return(string.Empty);
        }
        public ModulePosition Create(int companyId, int businessUnitId, int orderPositionId)
        {
            var modulePosition = new ModulePosition
            {
                CompanyId       = companyId,
                BusinessUnitId  = businessUnitId,
                OrderPositionId = orderPositionId,
                VacancyName     = string.Empty,
                BeginDate       = DateTime.Now
            };

            return(modulePosition);
        }
Beispiel #12
0
        /// <summary>
        /// <para>Adds given <paramref name="module"/> to configuration's <see cref="IClusterClientConfiguration.Modules"/> collection.</para>
        /// <para><paramref name="module"/> will be inserted into request module chain once around the module of specified type.</para>
        /// </summary>
        /// <param name="type">A type of module around which <paramref name="module"/> will be inserted.</param>
        /// <param name="module">A module to insert into request pipeline.</param>
        /// <param name="configuration">A configuration instance.</param>
        /// <param name="position">A relative position of <paramref name="module"/> from module of type <paramref name="type"/>. This parameter is optional and has default value <see cref="ModulePosition.Before"/>.</param>
        public static void AddRequestModule(
            this IClusterClientConfiguration configuration,
            IRequestModule module,
            Type type,
            ModulePosition position = ModulePosition.Before)
        {
            var modulesList = ObtainModules(configuration, type)[position];

            if (modulesList.All(m => m.GetType() != module.GetType()))
            {
                modulesList.Add(module);
            }
        }
Beispiel #13
0
 public PageDesignModuleContent(ModulePosition pos)
     : base(pos)
 {
     this.Parameter.Add("ModuleName", PageDesignContent.Code(pos.ModuleName));
     this.Parameter.Add("Exclusive", pos.Exclusive.ToString().ToLower());
     if (pos.Entry != null)
     {
         this.Parameter["LinkToEntryName"] = pos.Entry.LinkToEntryName;
         this.Parameter["EntryName"]       = pos.Entry.Name;
         this.Parameter.Add("EntryAction", pos.Entry.Action);
         this.Parameter.Add("EntryController", pos.Entry.Controller);
         this.Parameter.Add("Values", pos.Entry.Values == null ? "[]" : pos.Entry.Values.ToList().ToJSON());
     }
 }
Beispiel #14
0
        public static HWModulePosition MapModulePosition(ModulePosition Arg)
        {
            switch (Arg)
            {
            case ModulePosition.P1:
                return(HWModulePosition.Position1);

            case ModulePosition.P2:
                return(HWModulePosition.Position2);

            default:
                return(HWModulePosition.Position1);
            }
        }
Beispiel #15
0
        public virtual IHtmlString RenderModule(string moduleName, string moduleUrl)
        {
            ModulePosition position = new ModulePosition()
            {
                Exclusive = false
                ,
                PagePositionId = moduleName
                ,
                ModuleName = moduleName
                ,
                Entry = new Entry()
            };

            return(RenderModule(moduleName, moduleUrl, position));
        }
Beispiel #16
0
        internal List <IRequestModule> this[ModulePosition position]
        {
            get
            {
                switch (position)
                {
                case ModulePosition.Before:
                    return(Before);

                case ModulePosition.After:
                    return(After);

                default:
                    throw new ArgumentOutOfRangeException(nameof(position), position, null);
                }
            }
        }
Beispiel #17
0
        public void SetModulePosition(ModuleType moduleType, ModulePosition modulePosition)
        {
            switch (moduleType)
            {
            case ModuleType.FPS:
            case ModuleType.RTT:
                m_graphModulePosition = modulePosition;

                m_fpsManager.SetPosition(modulePosition);
                m_rttManager.SetPosition(modulePosition);
                break;

            case ModuleType.ADVANCED:
                m_advancedData.SetPosition(modulePosition);
                break;
            }
        }
Beispiel #18
0
        public virtual ActionResult ProcessModule(ModulePosition pos)
        {
            if (IsGet())
            {
                var manager = ServiceFactory.GetService <ModuleManager>();
                var modules = manager.AllModulesForSite(Site.FullName);
                var model   = new List <NameValueCollection>();
                foreach (var name in modules)
                {
                    var item = new NameValueCollection();
                    item.Add("ModuleName", name);
                    model.Add(item);
                    var setting = ModuleInfo.GetSiteModuleSettings(name, Site.FullName);
                    if (setting.Entry != null)
                    {
                        item.Add("EntryAction", setting.Entry.Action);
                        item.Add("EntryController", setting.Entry.Controller);
                    }
                    var info = ModuleInfo.Get(name);
                    if (info.EntryOptions != null)
                    {
                        var options = new List <object>();
                        foreach (var op in info.EntryOptions)
                        {
                            options.Add(new
                            {
                                Name            = op.Name,
                                EntryAction     = op.Entry.Action,
                                EntryController = op.Entry.Controller
                            });
                        }
                        var serializer  = new JavaScriptSerializer();
                        var optionsJson = serializer.Serialize(options);
                        item.Add("EntryOptions", HttpUtility.HtmlAttributeEncode(optionsJson));
                    }
                }
                return(View(model));
            }

            if (string.IsNullOrWhiteSpace(pos.Entry.Action) ||
                string.IsNullOrWhiteSpace(pos.Entry.Controller))
            {
                pos.Entry = null;
            }
            return(Json(new { html = new PageDesignModuleContent(pos).ToHtmlString() }));
        }
Beispiel #19
0
        public void SetModulePosition(ModuleType moduleType, ModulePosition modulePosition)
        {
            switch (moduleType)
            {
            case ModuleType.FPS:
            case ModuleType.RAM:
            case ModuleType.RPM:
            case ModuleType.AUDIO:
                m_graphModulePosition = modulePosition;

                m_ramManager.SetPosition(modulePosition);
                m_rpmManager.SetPosition(modulePosition);
                m_fpsManager.SetPosition(modulePosition);
                m_audioManager.SetPosition(modulePosition);
                break;

            case ModuleType.ADVANCED:
                m_advancedData.SetPosition(modulePosition);
                break;
            }
        }
        public ModulePosition SetModule(ModulePosition modulePosition, bool isActual, DbTransaction dbTran)
        {
            var moduleId     = modulePosition.Id;
            var lastEditDate = modulePosition.BeginDate;

            SetModule(
                dbTran: dbTran,
                moduleId: ref moduleId,
                companyId: modulePosition.CompanyId,
                businessUnitId: modulePosition.BusinessUnitId,
                orderPositionId: modulePosition.OrderPositionId,
                vacancyName: modulePosition.VacancyName,
                editUserId: _editUserId,
                isActual: isActual,
                lastEditDate: ref lastEditDate);

            modulePosition.Id        = moduleId;
            modulePosition.BeginDate = lastEditDate;

            return(modulePosition);
        }
		public void LoadModule(ModulePosition position)
		{
			switch (position)
			{
				case ModulePosition.Left:
					ModuleGrid.LeftSelection = _selectedModule;
					break;
				case ModulePosition.Right:
                    ModuleGrid.RightSelection = _selectedModule;
					break;
				case ModulePosition.Top:
                    ModuleGrid.TopSelection = _selectedModule;
					break;
				case ModulePosition.Middle:
                    ModuleGrid.MiddleSelection = _selectedModule;
					break;
				case ModulePosition.Bottom:
                    ModuleGrid.BottomSelection = _selectedModule;
					break;
			}
		}
Beispiel #22
0
        public virtual IHtmlString RenderModule(string moduleName, string moduleController, string moduleAction, object routeValues)
        {
            var routeDictionary = new RouteValueDictionary();

            if (routeValues != null)
            {
                routeDictionary = new RouteValueDictionary(routeValues);
            }
            ModulePosition position = new ModulePosition()
            {
                Exclusive = false
                ,
                PagePositionId = moduleName
                ,
                ModuleName = moduleName
                ,
                Entry = new Entry()
                {
                    Controller = moduleController, Action = moduleAction, Values = routeDictionary
                }
            };

            return(RenderModule(moduleName, null, position));
        }
Beispiel #23
0
 public FrontEndContext(string moduleName, ModuleSettings moduleSettings, ModulePosition modulePosition)
 {
     this._moduleName     = moduleName;
     this._moduleSettings = moduleSettings;
     this._modulePosition = modulePosition;
 }
Beispiel #24
0
 protected ModuleContext(Site site, string moduleName, ModuleSettings moduleSettings, ModulePosition position)
 {
     this.Site           = site;
     ModuleName          = moduleName;
     this.ModuleSettings = moduleSettings;
     this.ModulePosition = position;
 }
        // public method
        public static List <PagePosition> ParsePagePositions(string clientJson)
        {
            clientJson = HttpUtility.UrlDecode(clientJson);

            var positions = new List <PagePosition>();
            var list      = ParseJson <List <Dictionary <string, object> > >(clientJson);

            foreach (var item in list)
            {
                PagePosition pos = null;
                var          t   = item.Str("Type");
                if (t == PageDesignViewContent.TypeKey)
                {
                    bool skipError = false;
                    bool.TryParse(item.Str("SkipError"), out skipError);
                    pos = new ViewPosition()
                    {
                        ViewName    = item.Str("ViewName"),
                        SkipError   = skipError,
                        Parameters  = ParseViewParameters(item.Str("Parameters")),
                        OutputCache = ParseJson <CacheSettings>(item.Str("OutputCache"))
                    };
                }
                else if (t == PageDesignModuleContent.TypeKey)
                {
                    bool skipError = false;
                    bool.TryParse(item.Str("SkipError"), out skipError);
                    pos = new ModulePosition()
                    {
                        ModuleName = item.Str("ModuleName"),
                        SkipError  = skipError,
                        Exclusive  = (item.Str("Exclusive") == "true"),
                        Entry      = ParseModuleEntry(item)
                    };
                }
                else if (t == PageDesignFolderContent.TypeKey)
                {
                    pos = new ContentPosition()
                    {
                        Type     = ParseEnum <ContentPositionType>(item.Str("ContentPositionType")),
                        DataRule = ParseJson <FolderDataRule>(item.Str("DataRule"))
                    };
                }
                else if (t == PageDesignHtmlContent.TypeKey)
                {
                    pos = new HtmlPosition()
                    {
                        Html = item.Str("Html")
                    };
                }
                else if (t == PageDesignHtmlBlockContent.TypeKey)
                {
                    pos = new HtmlBlockPosition()
                    {
                        BlockName = item.Str("BlockName")
                    };
                }
                else if (t == PageDesignProxyContent.TypeKey)
                {
                    pos = new ProxyPosition()
                    {
                        Host        = item.Str("Host"),
                        RequestPath = item.Str("RequestPath"),
                        NoProxy     = item.Str("NoProxy") == "true",
                        //ProxyStylesheet = item.Str("ProxyStylesheet") == "true",
                        OutputCache = ParseJson <CacheSettings>(item.Str("OutputCache"))
                    };
                }
                // add
                if (pos != null)
                {
                    pos.LayoutPositionId = item.Str("LayoutPositionId");
                    pos.PagePositionId   = item.Str("PagePositionId");
                    pos.Order            = item.Int("Order");
                    positions.Add(pos);
                }
            }
            // ret
            return(positions);
        }
Beispiel #26
0
 public ModuleContext(string moduleName, Site site, ModulePosition position)
     : this(moduleName, site)
 {
     this.FrontEndContext = new FrontEndContext(moduleName, this.GetModuleSettings(), position);
 }
Beispiel #27
0
        // public method
        public static List <PagePosition> ParsePagePositions(string clientJson)
        {
            clientJson = HttpUtility.UrlDecode(clientJson);

            var positions = new List <PagePosition>();
            var list      = ParseJson <List <Dictionary <string, object> > >(clientJson);

            foreach (var item in list)
            {
                PagePosition pos = null;
                var          t   = item.Str("Type");
                if (t == PageDesignViewContent.TypeKey)
                {
                    pos = new ViewPosition()
                    {
                        ViewName    = item.Str("ViewName"),
                        Parameters  = ParseViewParameters(item.Str("Parameters")),
                        OutputCache = ParseJson <CacheSettings>(item.Str("OutputCache"))
                    };
                }
                else if (t == PageDesignModuleContent.TypeKey)
                {
                    pos = new ModulePosition()
                    {
                        ModuleName = item.Str("ModuleName"),
                        Exclusive  = (item.Str("Exclusive") == "true"),
                        Entry      = ParseModuleEntry(item.Str("EntryAction"), item.Str("EntryController"))
                    };
                }
                else if (t == PageDesignFolderContent.TypeKey)
                {
                    pos = new ContentPosition()
                    {
                        Type     = ParseEnum <ContentPositionType>(item.Str("ContentPositionType")),
                        DataRule = ParseJson <FolderDataRule>(item.Str("DataRule"))
                    };
                }
                else if (t == PageDesignHtmlContent.TypeKey)
                {
                    pos = new HtmlPosition()
                    {
                        Html = item.Str("Html")
                    };
                }
                else if (t == PageDesignHtmlBlockContent.TypeKey)
                {
                    pos = new HtmlBlockPosition()
                    {
                        BlockName = item.Str("BlockName")
                    };
                }
                // add
                if (pos != null)
                {
                    pos.LayoutPositionId = item.Str("LayoutPositionId");
                    pos.PagePositionId   = item.Str("PagePositionId");
                    pos.Order            = item.Int("Order");
                    positions.Add(pos);
                }
            }
            // ret
            return(positions);
        }
Beispiel #28
0
        public static ModuleActionInvokedContext InvokeAction(ControllerContext controllerContext, Site site, string moduleUrl, ModulePosition modulePosition)
        {
            HttpContext context        = HttpContext.Current;
            var         moduleSettings = ModuleInfo.GetSiteModuleSettings(modulePosition.ModuleName, site == null ? "" : site.FullName);

            if (modulePosition.Entry != null)
            {
                moduleSettings.Entry = modulePosition.Entry;
            }
            var settings   = moduleSettings;
            var positionId = modulePosition.PagePositionId;
            var moduleName = modulePosition.ModuleName;

            ModuleContext moduleContext = ModuleContext.Create(site, moduleName, settings, modulePosition);

            if (string.IsNullOrEmpty(moduleUrl))
            {
                if (settings != null && settings.Entry != null)
                {
                    moduleUrl = GetEntryUrl(context, moduleContext, settings.Entry);
                    if (!string.IsNullOrEmpty(moduleUrl) && !moduleUrl.StartsWith("~"))
                    {
                        moduleUrl = "~" + moduleUrl;
                    }
                }
            }
            if (string.IsNullOrEmpty(moduleUrl))
            {
                moduleUrl = "~/";
            }
            else if (moduleUrl[0] != '~')
            {
                moduleUrl = "~/" + moduleUrl.TrimStart('/');
            }

            var httpContext = new ModuleHttpContext(context
                                                    , new ModuleHttpRequest(context.Request, moduleUrl, moduleContext, controllerContext), new ModuleHttpResponse(context.Response, moduleContext), moduleContext);

            var routeData = moduleContext.RouteTable.GetRouteData(httpContext);

            var requestContext = new ModuleRequestContext(httpContext, routeData, moduleContext)
            {
                PageControllerContext = controllerContext
            };

            string controllerName = requestContext.RouteData.GetRequiredString("controller");
            string actionName     = requestContext.RouteData.GetRequiredString("action");
            var    controller     = (Controller)ControllerBuilder.Current.GetControllerFactory().CreateController(requestContext, controllerName);

            if (controller == null)
            {
                throw new Exception(string.Format("The module '{0}' controller for path '{1}' does not found or does not implement IController.", moduleName, moduleUrl));
            }
            //if (!(controller is ModuleControllerBase))
            //{
            //    throw new Exception(string.Format("The controller type '{0}' must be inherited from ModuleControllerBase.", controller.GetType().FullName));
            //}
            //ModuleControllerBase moduleController = (ModuleControllerBase)controller;

            //ControllerContext moduleControllerContext = new ControllerContext(requestContext, moduleController);

            InitializeController(controller, requestContext);

            var result = actionInvoker.InvokeActionWithoutExecuteResult(controller.ControllerContext, actionName);

            if (result == null)
            {
                HandleUnknownAction(controller, actionName);
            }
            return(result);
        }
Beispiel #29
0
 public ModuleActionInvokedContext(ModulePosition modulePosition, ControllerContext controllerContext, ActionResult actionResult)
 {
     this.ControllerContext = controllerContext;
     this.ModulePosition    = modulePosition;
     this.ActionResult      = actionResult;
 }
Beispiel #30
0
        public virtual ActionResult ProcessModule(ModulePosition pos)
        {
            this.ValueProvider.GetValue("q");

            if (IsGet())
            {
                var serializer = new JavaScriptSerializer();
                var manager    = ServiceFactory.GetService <ModuleManager>();
                var modules    = manager.AllModulesForSite(Site.FullName);
                var model      = new List <NameValueCollection>();
                foreach (var name in modules)
                {
                    var item = new NameValueCollection();
                    item.Add("ModuleName", name);
                    model.Add(item);
                    var moduleInfo = ModuleInfo.Get(name);
                    var setting    = moduleInfo.GetModuleSettings(Site);
                    if (setting.Entry != null)
                    {
                        item.Add("EntryAction", setting.Entry.Action);
                        item.Add("EntryController", setting.Entry.Controller);
                        item.Add("Values", setting.Entry.Values == null ? "[]" : serializer.Serialize(setting.Entry.Values.ToList()));
                    }
                    if (moduleInfo.EntryOptions != null)
                    {
                        var options = new List <object>();
                        foreach (var op in moduleInfo.EntryOptions)
                        {
                            options.Add(new
                            {
                                Name            = op.Name,
                                EntryAction     = op.Entry.Action,
                                EntryController = op.Entry.Controller,
                                Values          = op.Entry.Values == null ? new List <KeyValuePair <string, object> >() : op.Entry.Values.ToList()
                            });
                        }

                        var optionsJson = serializer.Serialize(options);
                        item.Add("EntryOptions", optionsJson);
                    }
                }
                return(View(model));
            }

            if (pos.Entry != null && pos.Entry.Values != null)
            {
                var newValues = new RouteValueDictionary();
                foreach (var item in pos.Entry.Values)
                {
                    if (item.Value is string[])
                    {
                        newValues[item.Key] = ((string[])item.Value).FirstOrDefault();
                    }
                    else
                    {
                        newValues[item.Key] = item.Value;
                    }
                }
                pos.Entry.Values = newValues;
            }

            return(Json(new { html = new PageDesignModuleContent(pos).ToHtmlString() }));
        }
Beispiel #31
0
 public void SetPosition(Position.ModulePosition position)
 {
     this.position = position;
 }