62,271
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 根据产品ID获取其所属的顶层产品类目ID
/// </summary>
/// <param name="ProductID">产品ID</param>
/// <returns></returns>
private int GetTopCategoriesIDByProductID(int ProductID)
{
M_Products model = BLLFactory.CreateProductBLL().GetDetail(ProductID);
return GetTopCategoriesID(model.CategoriesID);
}
/// <summary>
/// 获取顶层产品类目ID
/// </summary>
/// <param name="iChildCategoriesID"></param>
/// <returns></returns>
private int GetTopCategoriesID(int iTopCategoriesID)
{
M_Categories model = BLLFactory.CreateCategoriesBLL().GetDetail(iTopCategoriesID);
int iCategoriesID = 0;
if (model.ParentID == 0)
iCategoriesID = model.CategoriesID;
else
GetTopCategoriesID(model.ParentID);
return iCategoriesID;
}
/// <summary>
/// 获取顶层产品类目ID
/// </summary>
/// <param name="iChildCategoriesID"></param>
/// <returns></returns>
private int GetTopCategoriesID(int iTopCategoriesID)
{
M_Categories model = BLLFactory.CreateCategoriesBLL().GetDetail(iTopCategoriesID);
int iCategoriesID = 0;
if (model.ParentID == 0)
iCategoriesID = model.CategoriesID;
else
iCategoriesID = GetTopCategoriesID(model.ParentID); // <-- 错在这里,返回值被丢弃了
return iCategoriesID;
}
public static IEnumerable<ICategoryInfo> GetNavigation(IEnumerable<ICategoryInfo> categories, int categoryId)
{
IList<ICategoryInfo> list = new List<ICategoryInfo>();
int loop = 0;
int currentId = categoryId;
ICategoryInfo category;
while (loop < 10)
{
loop++;
var tmp = categories.Where(c => c.CategoryId == currentId);
if (tmp.Count() < 1)
{
break;
}
else
{
category = tmp.First();
list.Add(category);
if (category.ParentId > 0)
{
currentId = category.ParentId;
}
else
{
break;
}
}
}
return list.Reverse();
}
public static IEnumerable<T> GetNavigation<T>(IEnumerable<T> categories, int categoryId)
{
if (typeof(T).GetInterfaces().Contains(typeof(ICategoryInfo)))
{
var list = categories.Cast<ICategoryInfo>();
return GetNavigation(list, categoryId).Cast<T>();
}
return null;
}