private DishImgRawData GetDishDetails() { // 从 DishDetailsRawData 获取img var dishCatDetails = new DishListRawData(DishDetailsFileStore.GetAll <DishDetailsRawData>()); IEnumerable <DishImgItem> imgs = dishCatDetails.GetImgs(); // 取掉重复 return(new DishImgRawData(imgs.Distinct())); }
public void Execute() { //食材及其分类 foreach (var fmRawData in _foodMaterialStore.GetAll <FoodMaterialRawDataItem>()) { _foodMaterialManager.Import(fmRawData); Console.WriteLine($"食材:{fmRawData.Top}_{fmRawData.Middle} 成功"); } //菜品及其相关 //太多了,是否考虑并发! var dishCatDetails = new DishListRawData(_dishDetailsFileStore.GetAll <DishDetailsRawData>()); IEnumerable <DishDetailsRawDataItem> dishs = dishCatDetails.GetDishs(); ParallelOptions parallelOptions = new ParallelOptions() { MaxDegreeOfParallelism = 100, }; var start = DateTime.Now; ShowAndLog($"导入菜品 start:{start}"); Parallel.ForEach(dishs, parallelOptions, dish => { try { _dishManager.Import(dish); Console.Write($"."); } catch (Exception ex) { ShowAndLog($"{dish.ToString()} {ex.Message} {ex.InnerException?.Message}"); } }); var end = DateTime.Now; ShowAndLog($"导入菜品 end:{end} 耗时:{end.Subtract(start).TotalMinutes}"); }