예제 #1
0
        /// <summary>
        /// 删除页面的所有文章
        /// </summary>
        public void DeletePagePosts(string pageName)
        {
            IEnumerable <int> postIds = PostRepository.GetAll().Where(e => e.Page.Name == pageName).Select(e => e.Id);

            Expression <Func <ContentComponentData, object> >[] propertySelectors =
            {
                e => e.SingleDatas
            };
            ComponentDataRepository.GetAllIncluding(propertySelectors).Where(e => e.PageDataId.HasValue && postIds.Contains(e.PageDataId.Value)).ToList();
            ComponentDataRepository.Delete(item => item.PageDataId.HasValue && postIds.Contains(item.PageDataId.Value));

            PostRepository.Delete(e => postIds.Contains(e.Id));
        }
예제 #2
0
        public void SetContentComponentDatas(string pageName, string pageDataName, List <ContentComponentData> contentComponentDatas)
        {
            PageData pageData = PostRepository.FirstOrDefault(e => e.Page.Name == pageName && e.Name == pageDataName);

            Expression <Func <ContentComponentData, object> >[] propertySelectors =
            {
                e => e.SingleDatas
            };
            ComponentDataRepository.GetAllIncluding(propertySelectors).Where(e => e.PageDataId == pageData.Id).ToList();
            ComponentDataRepository.Delete(item => item.PageDataId == pageData.Id);

            contentComponentDatas.ForEach(item =>
            {
                item.PageData = pageData;
                ComponentDataRepository.Insert(item);
            });
        }
예제 #3
0
        public void DeletePageData(string pageName, string pageDataName)
        {
            var pageData = PostRepository.GetAllIncluding(new Expression <Func <PageData, object> >[] {
                e => e.Tags
            }).FirstOrDefault(e => e.Name == pageDataName && e.Page.Name == pageName);

            if (pageData == null)
            {
                throw new UserFriendlyException("找不到要删除的文章");
            }

            Expression <Func <ContentComponentData, object> >[] propertySelectors =
            {
                e => e.SingleDatas
            };
            ComponentDataRepository.GetAllIncluding(propertySelectors).Where(e => e.PageDataId == pageData.Id).ToList();
            ComponentDataRepository.Delete(item => item.PageDataId == pageData.Id);

            PostRepository.Delete(pageData);
        }