Exemple #1
0
        public ActionResult RegionTemplate(RegionInsertModel m)
        {
            var region = new Models.RegionTemplate()
            {
                TemplateId = m.TemplateId,
                Name       = m.Name,
                InternalId = m.InternalId,
                Type       = m.Type,
                Seqno      = m.Seqno
            };

            return(View("Region", region));
        }
        /// <summary>
        /// Creates and updates all page types defined by code.
        /// </summary>
        private void EnsurePageTypes()
        {
            foreach (var type in PageTypes)
            {
                var pt = Models.PageTemplate.Get("pagetemplate_type=@0", type.GetType().FullName).SingleOrDefault();

                Models.Manager.TemplateModels.PageEditModel m = null;

                // Get or create the page type
                if (pt != null)
                    m = Models.Manager.TemplateModels.PageEditModel.GetById(pt.Id, false);
                else m = new Models.Manager.TemplateModels.PageEditModel(false);

                // Set all meta data
                if (m.Template.IsNew)
                    m.Template.Id = Guid.NewGuid();
                m.Template.Name = type.Name;
                m.Template.Description = type.Description;
                m.Template.Preview = new HtmlString(type.Preview);
                m.Template.Controller = type.Controller;
                m.Template.ShowController = type.ShowController;
                m.Template.View = type.View;
                m.Template.ShowView = type.ShowView;
                m.Template.Redirect = type.Redirect;
                m.Template.ShowRedirect = type.ShowRedirect;
                m.Template.Properties.Clear();
                m.Template.Properties.AddRange(type.Properties);
                m.Template.Type = type.GetType().FullName;
                m.Template.IsBlock = type.IsBlock;
                m.Template.Subpages = type.Subpages;

                var old = new List<Models.RegionTemplate>();
                m.Regions.ForEach(r => old.Add(r));
                m.Regions.Clear();

                // Create region templates
                for (int n = 1; n <= type.Regions.Count; n++)
                {
                    var reg = type.Regions[n - 1];

                    var rt = old.Where(r => r.InternalId == reg.InternalId && r.Type == reg.Type.FullName).SingleOrDefault();
                    if (rt == null)
                        rt = new Models.RegionTemplate();

                    rt.TemplateId = m.Template.Id;
                    rt.InternalId = reg.InternalId;
                    rt.Name = reg.Name;
                    rt.Type = reg.Type.FullName;
                    rt.Seqno = n;

                    m.Regions.Add(rt);
                }
                // Delete removed region templates
                var removed = old.Where(r => !m.Regions.Contains(r));

                // Map parent types
                m.Template.BlockTypes.Clear();
                foreach (var parent in type.ParentTypes)
                {
                    var t = m.Templates.SingleOrDefault(x => x.Type == parent.FullName);
                    if (t != null)
                        m.Template.BlockTypes.Add(t.Id);
                }

                // Save Template
                Data.Database.LoginSys();
                foreach (var rem in removed)
                    rem.Delete();
                m.SaveAll();
                Data.Database.Logout();
            }
        }
Exemple #3
0
        /// <summary>
        /// Creates and updates all page types defined by code.
        /// </summary>
        private void EnsurePageTypes()
        {
            foreach (var type in PageTypes)
            {
                var pt = Models.PageTemplate.Get("pagetemplate_type=@0", type.GetType().FullName).SingleOrDefault();

                Models.Manager.TemplateModels.PageEditModel m = null;

                // Get or create the page type
                if (pt != null)
                {
                    m = Models.Manager.TemplateModels.PageEditModel.GetById(pt.Id, false);
                }
                else
                {
                    m = new Models.Manager.TemplateModels.PageEditModel(false);
                }

                // Set all meta data
                if (m.Template.IsNew)
                {
                    m.Template.Id = Guid.NewGuid();
                }
                m.Template.Name           = type.Name;
                m.Template.Description    = type.Description;
                m.Template.Preview        = new HtmlString(type.Preview);
                m.Template.Controller     = type.Controller;
                m.Template.ShowController = type.ShowController;
                m.Template.View           = type.View;
                m.Template.ShowView       = type.ShowView;
                m.Template.Redirect       = type.Redirect;
                m.Template.ShowRedirect   = type.ShowRedirect;
                m.Template.Properties.Clear();
                m.Template.Properties.AddRange(type.Properties);
                m.Template.Type = type.GetType().FullName;

                var old = new List <Models.RegionTemplate>();
                m.Regions.ForEach(r => old.Add(r));
                m.Regions.Clear();

                // Create region templates
                for (int n = 1; n <= type.Regions.Count; n++)
                {
                    var reg = type.Regions[n - 1];

                    var rt = old.Where(r => r.InternalId == reg.InternalId && r.Type == reg.Type.FullName).SingleOrDefault();
                    if (rt == null)
                    {
                        rt = new Models.RegionTemplate();
                    }

                    rt.TemplateId = m.Template.Id;
                    rt.InternalId = reg.InternalId;
                    rt.Name       = reg.Name;
                    rt.Type       = reg.Type.FullName;
                    rt.Seqno      = n;

                    m.Regions.Add(rt);
                }
                // Delete removed region templates
                var removed = old.Where(r => !m.Regions.Contains(r));

                // Save Template
                Data.Database.LoginSys();
                foreach (var rem in removed)
                {
                    rem.Delete();
                }
                m.SaveAll();
                Data.Database.Logout();
            }
        }
 public ActionResult RegionTemplate(RegionInsertModel m)
 {
     var region = new Models.RegionTemplate() {
         TemplateId = m.TemplateId,
         Name = m.Name,
         InternalId = m.InternalId,
         Type = m.Type,
         Seqno = m.Seqno
     } ;
     return View("Region", region) ;
 }