Example #1
0
        /// <summary>
        /// 删除栏目,如果有小栏目未删除则返回false
        /// </summary>
        /// <param name="lft"></param>
        /// <returns></returns>
        public bool Delete(int lft)
        {
            //用于拼接栏目ID
            StringBuilder sb = new StringBuilder();

            //获取栏目
            Category category = this.Get(a => a.Lft == lft);

            if (category == null)
            {
                return(false);
            }

            int siteId = category.SiteID;

            sb.Append(category.ID.ToString());
            this.HandleCategoryTree(category.Name, (c, level) =>
            {
                sb.Append(",").Append(c.ID.ToString());
            });


            if (adal.GetCategoryArchivesCount(sb.ToString()) != 0)
            {
                return(false);
            }
            else
            {
                /*
                 * 删除所有子节点?
                 * DELETE FROM `tree` WHERE `left_node`>父节点的左值 AND `right_node`>父节点的右值
                 * 9、删除一个节点及其子节点?
                 * 在上例中的<号>号后面各加一个=号
                 */
                int rgt = category.Rgt;

                bool result = dal.Delete(0, lft);
                if (result)
                {
                    //更新删除的左右值
                    dal.UpdateDeleteLftRgt(siteId, lft, rgt);

                    //删除视图设置
                    TemplateBindBLL tb = new TemplateBindBLL();
                    tb.RemoveErrorCategoryBind();
                    //tb.RemoveBind(TemplateBindType.CategoryTemplate, lft.ToString());
                    //tb.RemoveBind(TemplateBindType.CategoryArchiveTemplate, lft.ToString());

                    //重建缓存
                    this.RebuildCache();
                }
                return(result);
            }
        }
Example #2
0
        /// <summary>
        /// 删除栏目,如果有小栏目未删除则返回false
        /// </summary>
        /// <param name="lft"></param>
        /// <returns></returns>
        public bool Delete(int lft)
        {
            //用于拼接栏目ID
            StringBuilder sb = new StringBuilder();

            //获取栏目
            Category category = this.Get(a => a.Lft == lft);

            if (category == null)
            {
                return false;
            }

            int siteId = category.SiteID;

            sb.Append(category.ID.ToString());
            this.HandleCategoryTree(category.Name, (c, level) =>
            {
                sb.Append(",").Append(c.ID.ToString());
            });


            if (adal.GetCategoryArchivesCount(sb.ToString()) != 0)
            {
                return false;
            }
            else
            {

                /*
                 * 删除所有子节点?
                 * DELETE FROM `tree` WHERE `left_node`>父节点的左值 AND `right_node`>父节点的右值
                 * 9、删除一个节点及其子节点?
                 * 在上例中的<号>号后面各加一个=号
                 */
                int rgt=category.Rgt;

                bool result = dal.Delete(0,lft);
                if (result)
                {
                    //更新删除的左右值
                    dal.UpdateDeleteLftRgt(siteId,lft, rgt);

                    //删除视图设置
                    TemplateBindBLL tb = new TemplateBindBLL();
                    tb.RemoveErrorCategoryBind();
                    //tb.RemoveBind(TemplateBindType.CategoryTemplate, lft.ToString());
                    //tb.RemoveBind(TemplateBindType.CategoryArchiveTemplate, lft.ToString());

                    //重建缓存
                    this.RebuildCache();
                }
                return result;
            }
        }