예제 #1
0
파일: PageProvider.cs 프로젝트: zhq0131/CMS
        public Models.Page GetDraft(Models.Page page)
        {
            var entity = _dbContext.PageDrafts
                         .Where(it => it.SiteName == page.Site.FullName && it.FullName == page.FullName)
                         .FirstOrDefault();

            return(PageEntityHelper.ToPage(entity));
        }
예제 #2
0
파일: PageProvider.cs 프로젝트: zhq0131/CMS
        /// <summary>
        /// 为什么要缓存Page表呢?
        /// 1. 因为在实际使用过程中发现,如果页面数量相对比较多的时候,第一次查找页面的过程中会调用很多次ChildPages,导致请求的效率很低,时间花费很高。
        /// 2. 目前的设计已经是假设页面数量不多的前提了。所以缓该表的数据量是可以接受的。
        /// </summary>
        private List <PageEntity> GetCachedPageList()
        {
            var cacheObject = CacheManagerFactory.DefaultCacheManager.GlobalObjectCache();

            return(cacheObject.GetCache <List <PageEntity> >(cacheKey, () =>
            {
                return _dbContext.Pages.ToArray().Select(it => { it.PageObject = PageEntityHelper.ToPage(it); return it; })
                .ToList();
            }));
        }
예제 #3
0
파일: PageProvider.cs 프로젝트: zhq0131/CMS
        public Models.Page Copy(Models.Site site, string sourcePageFullName, string newPageFullName)
        {
            var page    = Get(new Page(site, sourcePageFullName));
            var newPage = new Page(site, newPageFullName);
            var entity  = PageEntityHelper.ToPageEntity <PageEntity>(page);

            entity.FullName = newPageFullName;
            if (newPage.Parent != null)
            {
                entity.ParentPage = newPage.Parent.FullName;
            }

            _dbContext.Pages.Add(entity);
            _dbContext.SaveChanges();

            ClearCache();

            return(PageEntityHelper.ToPage(entity));
        }