/// <summary>
 /// 删除和更新分类时触发
 /// </summary>
 private void DeleteUpdateCategories_Before(Category sender, CommonEventArgs eventArgs)
 {
     if (sender.TenantTypeId == TenantTypeIds.Instance().Topic())
     {
         if (eventArgs.EventOperationType == EventOperationType.Instance().Delete() || eventArgs.EventOperationType == EventOperationType.Instance().Update())
         {
             IEnumerable<long> groupIds = categoryService.GetItemIds(sender.CategoryId, false);
             if (groupSearcher == null)
             {
                 groupSearcher = (TopicSearcher)SearcherFactory.GetSearcher(TopicSearcher.CODE);
             }
             groupSearcher.Update(topicService.GetTopicEntitiesByIds(groupIds));
         }
     }
 }
 /// <summary>
 /// 删除和更新分类时触发
 /// </summary>
 private void DeleteUpdateCategories_Before(Category sender, CommonEventArgs eventArgs)
 {
     if (sender.TenantTypeId == TenantTypeIds.Instance().Journals())
     {
         if (eventArgs.EventOperationType == EventOperationType.Instance().Delete() || eventArgs.EventOperationType == EventOperationType.Instance().Update())
         {
             IEnumerable<long> blogThreadIds = categoryService.GetItemIds(sender.CategoryId, false);
             if (journalSearcher == null)
             {
                 journalSearcher = (JournalSearcher)SearcherFactory.GetSearcher(JournalSearcher.CODE);
             }
             journalSearcher.Update(journalService.GetJournalsByIds(blogThreadIds));
         }
     }
 }
 /// <summary>
 /// 迭代获取类别
 /// </summary>
 /// <param name="category"></param>
 /// <param name="allParentCategories"></param>
 private void RecursiveGetAllParentCategories(Category category, ref List<Category> allParentCategories)
 {
     if (category == null)
         return;
     allParentCategories.Insert(0, category);
     Category parent = category.Parent;
     if (parent != null)
         RecursiveGetAllParentCategories(parent, ref allParentCategories);
 }
 /// <summary>
 /// 递归获取所有父级(如果没有子级则不包含本级)
 /// </summary>
 /// <param name="category"></param>
 /// <param name="allParentCategories"></param>
 private void GetAllParentCategories(Category category, ref List<Category> allParentCategories)
 {
     if (category == null)
         return;
     if (category.ChildCount != 0)
         allParentCategories.Insert(0, category);
     GetAllParentCategories(category.Parent, ref allParentCategories);
 }
Esempio n. 5
0
 /// <summary>
 /// 获取当前分类是否是打开状态
 /// </summary>
 /// <param name="category">当前分类</param>
 /// <param name="checkedCategoryIds">被选中的分类Id集合</param>
 /// <param name="openLevel">默认展开的层级</param>
 /// <returns>是否打开</returns>
 private static bool IsOpenedNode(Category category, List<long> checkedCategoryIds, int? openLevel)
 {
     //有选中分类的情况;该分类的所有父级分类展开,其他分类关闭
     if (checkedCategoryIds != null && checkedCategoryIds.Count > 0)
     {
         return checkedCategoryIds.Contains(category.CategoryId);
     }
     //小于等于展开层级的分类展开,其他分类关闭
     else if (openLevel.HasValue && openLevel.Value > 0)
     {
         return category.Depth <= openLevel;
     }
     return false;
 }
Esempio n. 6
0
 /// <summary>
 /// 是否具有编辑分类的权限
 /// </summary>        
 /// <returns></returns>
 public bool Category_Edit(Category category)
 {
     IUser currentUser = UserContext.CurrentUser;
     if (currentUser == null)
         return false;
     TenantType tenantType = tenantTypeService.Get(category.TenantTypeId);
     if (tenantType == null)
         return false;
     if (IsAdministrator(tenantType.ApplicationId))
         return true;
     if (AuthorizationService.IsTenantManager(currentUser, category.TenantTypeId, category.OwnerId))
         return true;
     return false;
 }
Esempio n. 7
0
        /// <summary>
        /// 新建实体时使用
        /// </summary>
        public static Category New()
        {
            Category categorie = new Category()
            {
                CategoryName = string.Empty,
                Description = string.Empty,
                TenantTypeId = string.Empty,
                AuditStatus = AuditStatus.Success,
                PrivacyStatus = PrivacyStatus.Public,
                LastModified = DateTime.UtcNow,
                DateCreated = DateTime.UtcNow

            };
            return categorie;
        }
Esempio n. 8
0
        /// <summary>
        /// 获取所有父类
        /// </summary>
        /// <param name="categories">父分类列表</param>
        /// <param name="category">当前分类</param>
        /// <param name="includeSelf">是否包含自己</param>
        /// <param name="maxLength">最大个数(-1:不做限制,0:获取不到任何数据)(从本身一级开始往上数N级)</param>
        private static void GetAllParentCategory(Category category, ref List<Category> categories, bool includeSelf = true, int maxLength = -1)
        {
            if (category == null)
                return;

            if (maxLength == 0 || maxLength < -1)
                return;

            if (maxLength != -1)
                maxLength--;

            if (includeSelf)
                categories.Insert(0, category);

            if (category.Parent == null)
                return;

            GetAllParentCategory(category.Parent, ref categories, true, maxLength);
        }