public IEnumerable <ICategory> GetCategories(int siteId, int lft, int rgt, CategoryContainerOption option) { if (!this.Categories.ContainsKey(siteId)) { throw new Exception("站点无栏目!"); } return(CategoryFilter.GetCategories(lft, rgt, this.Categories[siteId], option)); }
public IEnumerable <ICategory> GetCategories(int siteId, int catId, CategoryContainerOption option) { this.ChkPreload(); if (!this.Categories.ContainsKey(siteId)) { throw new Exception("站点无栏目!"); } // return CategoryFilter.GetCategories(lft, rgt, this.Categories[siteId], option); ICategory parent = this.GetCategory(siteId, catId); return(CategoryFilter.GetCategories(parent, this.Categories[siteId], option)); }
/// <summary> /// 获取栏目 /// </summary> /// <param name="lft"></param> /// <param name="rgt"></param> /// <param name="option"></param> /// <returns></returns> public IEnumerable <Category> GetCategories(int lft, int rgt, CategoryContainerOption option) { //如果在初始化,则直接用静态变量 IEnumerable <Category> _categories = (cateRef == null ? categories : GetCategories()) .OrderBy(a => a.Lft); switch (option) { case CategoryContainerOption.Childs: if (rgt - lft == 1) { return(new List <Category>()); } else { return(_categories.Where(a => a.Lft > lft && a.Rgt < lft)); } case CategoryContainerOption.ChildsAndSelf: return(_categories.Where(a => a.Lft >= lft && a.Rgt <= lft)); case CategoryContainerOption.Parents: return(_categories.Where(a => a.Lft < lft && a.Rgt > rgt && a.Lft != 1)); case CategoryContainerOption.ParentsAndSelf: return(_categories.Where(a => a.Lft <= lft && a.Rgt >= rgt && a.Lft != 1)); case CategoryContainerOption.NextLevel: /*无子节点 * 当左值+1==右值时,该节点没有子节点,则下一节点不为其子节点 *若下一节点的左值==上一节点右值+1,则2个节点是同级关系 */ if (rgt - lft == 1) { return(new List <Category>()); } else { return(this.GetNextLevelCategories(_categories.Where(a => a.Lft > lft && a.Rgt < rgt))); } case CategoryContainerOption.SameLevel: return(this.GetSameLevelCategories(lft, rgt, _categories)); case CategoryContainerOption.SameLevelNext: return(this.GetSameLevelNextCategories(lft, rgt, _categories)); case CategoryContainerOption.SameLevelPrevious: return(this.GetSameLevelPreviousCategories(lft, rgt, _categories)); } return(null); }
/// <summary> /// 在集合中获取条件的分类 /// </summary> /// <param name="lft"></param> /// <param name="rgt"></param> /// <param name="_categories"></param> /// <param name="option"></param> /// <returns></returns> public static IEnumerable<ICategory> GetCategories(int lft, int rgt, IEnumerable<ICategory> _categories,CategoryContainerOption option) { //如果在初始化,则直接用静态变量 switch (option) { case CategoryContainerOption.Childs: if (rgt - lft == 1) { return new List<ICategory>(); } else { // return _categories.Where(a => a.Lft > lft && a.Rgt < lft); return _categories.Where(a => a.Lft > lft && a.Rgt < rgt); } case CategoryContainerOption.ChildsAndSelf: //return _categories.Where(a => a.Lft >= lft && a.Rgt <= lft); return _categories.Where(a => a.Lft >= lft && a.Rgt <= rgt); case CategoryContainerOption.Parents: return _categories.Where(a => a.Lft < lft && a.Rgt > rgt && a.Lft != 1); case CategoryContainerOption.ParentsAndSelf: return _categories.Where(a => a.Lft <= lft && a.Rgt >= rgt && a.Lft != 1); case CategoryContainerOption.NextLevel: /*无子节点 *当左值+1==右值时,该节点没有子节点,则下一节点不为其子节点 *若下一节点的左值==上一节点右值+1,则2个节点是同级关系 */ if (rgt - lft == 1) { return new List<ICategory>(); } else { return GetNextLevelCategories(_categories.Where(a => a.Lft > lft && a.Rgt < rgt)); } case CategoryContainerOption.SameLevel: return GetSameLevelCategories(lft, rgt, _categories); case CategoryContainerOption.SameLevelNext: return GetSameLevelNextCategories(lft, rgt, _categories); case CategoryContainerOption.SameLevelPrevious: return GetSameLevelPreviousCategories(lft, rgt, _categories); } return null; }
public IEnumerable <CategoryDto> GetCategories( int siteId, int lft, int rgt, CategoryContainerOption categoryContainerOption) { ISite site = this._resp.GetSiteById(siteId); IEnumerable <ICategory> categories = site.GetCategories(lft, rgt, categoryContainerOption); CategoryDto dto; foreach (ICategory category in categories) { yield return(CategoryDto.ConvertFrom(category)); } }
public IEnumerable<ICategory> GetCategories(int siteId, int lft, int rgt, CategoryContainerOption option) { if (!this.Categories.ContainsKey(siteId)) throw new Exception("站点无栏目!"); return CategoryFilter.GetCategories(lft, rgt, this.Categories[siteId], option); }
public IEnumerable<CategoryDto> GetCategories( int siteId,int lft, int rgt, CategoryContainerOption categoryContainerOption) { ISite site = this._resp.GetSiteById(siteId); IEnumerable<ICategory> categories = site.GetCategories(lft, rgt, categoryContainerOption); CategoryDto dto; foreach (ICategory category in categories) { yield return CategoryDto.ConvertFrom(category); } }
public IEnumerable <ICategory> GetCategories(int lft, int rgt, CategoryContainerOption option) { return(this._categoryRep.GetCategories(this.Id, lft, rgt, option)); }
public IEnumerable <ICategory> GetCategories(int catId, CategoryContainerOption option) { return(this._categoryRep.GetCategories(this.GetAggregaterootId(), catId, option)); }
public static IEnumerable <ICategory> GetCategories(ICategory parent, IList <ICategory> list, CategoryContainerOption option) { int siteId = parent.Get().SiteId; String path = parent.Get().Path; switch (option) { case CategoryContainerOption.Childs: return(list.Where(a => a.Get().SiteId == siteId && a.Get().Path.StartsWith(path)).OrderBy(a => a.Get().SortNumber)); } return(list); /* * //如果在初始化,则直接用静态变量 * switch (option) * { * case CategoryContainerOption.Childs: * if (rgt - lft == 1) * { * return new List<ICategory>(); * } * else * { * // return _categories.Where(a => a.Lft > lft && a.Rgt < lft); * return _categories.Where(a => a.Lft > lft && a.Rgt < rgt); * } * * case CategoryContainerOption.ChildsAndSelf: * //return _categories.Where(a => a.Lft >= lft && a.Rgt <= lft); * return _categories.Where(a => a.Lft >= lft && a.Rgt <= rgt); * * case CategoryContainerOption.Parents: * return _categories.Where(a => a.Lft < lft && a.Rgt > rgt && a.Lft != 1); * * case CategoryContainerOption.ParentsAndSelf: * return _categories.Where(a => a.Lft <= lft && a.Rgt >= rgt && a.Lft != 1); * * case CategoryContainerOption.NextLevel: * * if (rgt - lft == 1) * { * return new List<ICategory>(); * } * else * { * return GetNextLevelCategories(_categories.Where(a => a.Lft > lft && a.Rgt < rgt)); * } * case CategoryContainerOption.SameLevel: * return GetSameLevelCategories(lft, rgt, _categories); * * case CategoryContainerOption.SameLevelNext: * return GetSameLevelNextCategories(lft, rgt, _categories); * * case CategoryContainerOption.SameLevelPrevious: * return GetSameLevelPreviousCategories(lft, rgt, _categories); * * } * return null;*/ }
public IEnumerable<ICategory> GetCategories(int lft, int rgt, CategoryContainerOption option) { return this._categoryRep.GetCategories(this.Id,lft, rgt, option); }