/// <summary>
 /// 获取上级Static的栏目
 /// </summary>
 /// <param name="catId"></param>
 /// <returns></returns>
 public static Base_Catalog GetStaticParent(this Base_Catalog cat)
 {
     while (cat.ParentId != null)
     {
         var parent = SiteManager.Catalog.GetById(cat.ParentId.Value);
         if (parent == null)
         {
             break;
         }
         cat = parent;
         if (cat.State == ArticleState.Static || cat.ParentId == 0)
         {
             break;
         }
     }
     return(cat);
 }
 /// <summary>
 /// 根据栏目获取所有下级子结点
 /// </summary>
 /// <param name="cat"></param>
 /// <returns></returns>
 public static IEnumerable <Base_Catalog> GetDescendantByLang(this Base_Catalog cat)
 {
     return(SiteManager.Catalog.GetDescendantByLang(cat.Id));
 }
 /// <summary>
 /// 根据栏目获取子结点
 /// </summary>
 /// <param name="cat"></param>
 /// <returns></returns>
 public static IEnumerable <Base_Catalog> GetChildrenByLang(this Base_Catalog cat)
 {
     return(SiteManager.Catalog.GetChildrenByLang(cat.Id));
 }
 /// <summary>
 /// 根据栏目获取它的某个指定名称的标签
 /// </summary>
 /// <param name="cat"></param>
 /// <param name="extName"></param>
 /// <returns></returns>
 public static Base_CatalogExt GetExtByName(this Base_Catalog cat, string extName)
 {
     return(SiteManager.Catalog.GetAllExts(cat.Id)
            .FirstOrDefault(ext => ext.Name.Equals(extName, StringComparison.OrdinalIgnoreCase)));
 }