/// <summary> /// 获取二级分类下的子分类(获取三级) /// </summary> /// <param name="parent"></param> /// <param name="cats"></param> /// <returns></returns> private List <TempCategory> GetChildTempCategoryList(TempCategory parent, CategoryItem[] cats, IEnumerable <TempCategory> location) { if (cats == null) { return(null); } List <TempCategory> list = new List <TempCategory>(); foreach (var cat in cats) { //本地数据库中副本 var dbItem = location.FirstOrDefault(p => p.Name.Equals(cat.Text, StringComparison.OrdinalIgnoreCase)); long newCatId = dbItem != null ? dbItem.CategoryId : Tools.NewId(); TempCategory category = new TempCategory { Link = cat.Link, SiteCatId = cat.CatId, Layer = parent.Layer + "," + newCatId.ToString(), Name = cat.Text, CategoryId = newCatId, ParentId = parent.CategoryId, Type = collectorType }; list.Add(category); } return(list); }
public TempMonitor GetTempMonitor(TempCategory tempCategory) { return(tempCategory switch { TempCategory.Warm => new TempMonitor(30, 45), TempCategory.Fresh => new TempMonitor(16, 30), TempCategory.Cold => new TempMonitor(6, 15), TempCategory.Freezing => new TempMonitor(0, 5), _ => throw new ArgumentOutOfRangeException(message: "Invalid Temperature Expresion", paramName: nameof(tempCategory)), });
public IEnumerable <TempCategory> UpdateCategories() { List <TempCategory> categories = new List <TempCategory>(); //本地数据库存储的商品分类 var locationCategories = GetLocationCategories(); //一级分类 var first = GetFirstCategoryResult(); foreach (var cat in first.Data) { //本地数据库中副本 var dbItem = locationCategories.FirstOrDefault(p => p.Name.Equals(cat.Name, StringComparison.OrdinalIgnoreCase)); long newCatId = dbItem != null ? dbItem.CategoryId : Tools.NewId(); TempCategory category = new TempCategory { Link = cat.Link, SiteCatId = cat.CatId, Layer = newCatId.ToString(), Name = cat.Name, CategoryId = newCatId, ParentId = 0, Type = collectorType }; var childUrl = categoryOption.ChildCategoriesDataUrl.Replace("#wh_id#", cat.Id); var childData = GetChildCategoryResult(childUrl); if (childData != null && childData.Data != null) { var child = GetChildTempCategoryList(category, childData.Data.Cats, locationCategories); category.Child = child.ToArray(); } categories.Add(category); } //更新本地商品分类 new DataService().UpdateCategories(categories); return(categories); }
/// <summary> /// 这是专门为寻找分类准备的 /// </summary> /// <param name="categoryId"></param> /// <returns></returns> TempCategory findTempCategory(long categoryId) { //定义查找方法 var find = Tools.Fix <TempCategory, TempCategory>(f => (cat) => { TempCategory temp = null; if (cat.CategoryId == categoryId) { temp = cat; } else if (cat.Child != null) { foreach (var c in cat.Child) { temp = f(c); if (temp != null) { break; } } } return(temp); }); TempCategory result = null; foreach (var cat in Categories) { result = find(cat); if (result != null) { break; } } return(result); }