Ejemplo n.º 1
0
        /// <summary>
        /// Default constructor, creates a new model.
        /// </summary>
        public ListModel()
        {
            Pages     = new List <Sitemap>();
            Templates = PageTemplate.GetFields("pagetemplate_id, pagetemplate_name, pagetemplate_preview, pagetemplate_description",
                                               "pagetemplate_site_template = 0", new Params()
            {
                OrderBy = "pagetemplate_name ASC"
            });
            AllPages = Sitemap.GetFields("page_id, page_title, page_navigation_title, pagetemplate_name, sitetree_name", "page_draft = 1 AND page_original_id IS NULL AND (page_parent_id IS NULL OR page_parent_id NOT IN (SELECT sitetree_id FROM sitetree))",
                                         new Params()
            {
                OrderBy = "sitetree_name, COALESCE(page_navigation_title, page_title)"
            });

            SitePage          = new Dictionary <Guid, Guid>();
            SiteWarnings      = new Dictionary <Guid, int>();
            TotalSiteWarnings = new Dictionary <Guid, int>();
            PageWarnings      = new Dictionary <Guid, int>();

            using (var db = new DataContext()) {
                SiteTrees = db.SiteTrees.OrderBy(s => s.Name).ToList();

                foreach (var site in SiteTrees)
                {
                    SitePage[site.Id]     = db.Pages.Where(p => p.SiteTreeId == site.Id && p.ParentId == site.Id).Select(p => p.Id).SingleOrDefault();
                    SiteWarnings[site.Id] = 0 + (String.IsNullOrEmpty(site.MetaTitle) ? 1 : 0) + (String.IsNullOrEmpty(site.MetaDescription) ? 1 : 0);

                    TotalSiteWarnings[site.Id] =
                        Page.GetScalar("SELECT COUNT(*) FROM page WHERE page_draft = 1 AND page_sitetree_id = @0 AND page_parent_id != @0 AND page_original_id IS NULL AND page_published IS NOT NULL AND page_keywords IS NULL", site.Id) +
                        Page.GetScalar("SELECT COUNT(*) FROM page WHERE page_draft = 1 AND page_sitetree_id = @0 AND page_parent_id != @0 AND page_original_id IS NULL AND page_published IS NOT NULL AND page_description IS NULL", site.Id);
                }
            }
        }