示例#1
0
        private void ResetPageLayout(PageInfo page)
        {
            var layoutController = new LayoutController();
            var layout =
                layoutController.Get(page.LayoutID)
                ?? layoutController.GetDefault();
            foreach (var section in layout.Sections)
            {
                var pageSections =
                    page.Sections
                    ?? new PageSectionInfo[0];
                var existingSection = pageSections
                    .FirstOrDefault(s => s.ID.Equals(section.ID, StringComparison.InvariantCultureIgnoreCase));
                if (existingSection == null)
                {
                    existingSection = SectionAdd(page.ID, section);
                }

                foreach (var module in section.Modules)
                {
                    var existingModule = existingSection.Modules
                        .FirstOrDefault(m => m.ID.Equals(module.ID, StringComparison.InvariantCultureIgnoreCase));
                    if (existingModule == null)
                    {
                        existingModule = ModuleAdd(new PageModuleInfo
                        {
                            ControllerID = page.ControllerID,
                            ID = module.ID,
                            Ordinal = module.Ordinal,
                            PageID = page.ID,
                            SectionID = module.SectionID,
                        });
                    }
                }
            }
        }