|
- using BPASmartClient.CustomResource.Pages.Model;
- using BPASmartClient.Helper;
- using FryPot_DosingSystem.Model;
- using Microsoft.Toolkit.Mvvm.ComponentModel;
- using Microsoft.Toolkit.Mvvm.Input;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace FryPot_DosingSystem.ViewModel
- {
- internal class NewRecipeViewModel : ObservableObject
- {
- /// <summary>
- /// 配方唯一编码,用于编辑配方
- /// </summary>
- public string recipeId { get; set; }
- /// <summary>
- /// 配方名称
- /// </summary>
- private string _recipeName;
- public string RecipeName { get { return _recipeName; } set { _recipeName = value; OnPropertyChanged(); } }
-
- private int _recipeRollerNum;
- /// <summary>
- /// 配方中桶数
- /// </summary>
- public int RecipeRollerNum { get { return _recipeRollerNum; } set { _recipeRollerNum = value; OnPropertyChanged(); } }
-
- public ObservableCollection<MaterialType> materials { get; set; } = new ObservableCollection<MaterialType>();
-
- public ObservableCollection<string> materialNames { get; set; } = new ObservableCollection<string>();
-
- public RelayCommand AddRecipe { get; set; }
- public RelayCommand<string> RemoveRecipe { get; set; }
- public RelayCommand Comfirm { get; set; }
- public NewRecipeViewModel()
- {
- Json<MaterialNames>.Read();
- MaterialNames.GetInstance.Names = Json<MaterialNames>.Data.Names;
- materialNames = Json<MaterialNames>.Data.Names;
- ActionManage.GetInstance.Register(new Action<object>(Id =>
- {
- if (Id != null && Id is string strId)
- {
- var res = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.RecipeId == strId);
- if (res != null && res is NewRecipeModel rom)
- {
- RecipeName = rom.RecipeName;
- RecipeRollerNum = rom.materialCollection.Count;
- foreach (var item in rom.materialCollection)
- {
- materials.Add(item);
- }
- recipeId = strId;
- }
- }
- }), "EditRecipe");
- AddRecipe = new RelayCommand(() =>
- {
- for (int i = 0; i < RecipeRollerNum; i++)
- {
- pr1:
- string materialCode = Guid.NewGuid().ToString();//原料唯一ID ,后期需要根据实际要求更改
- var res = materials.FirstOrDefault(p => p.MaterialCode == materialCode);
- if (res == null)
- {
- materials.Add(new MaterialType() { MaterialCode = materialCode });
- }
- else
- {
- goto pr1;
- }
- }
-
- });
- RemoveRecipe = new RelayCommand<string>(code =>
- {
- var res = materials.FirstOrDefault(m => m.MaterialCode == code);
- if (res != null)
- materials.Remove(res);
- });
- Comfirm = new RelayCommand(() =>
- {
- var bom = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.RecipeId == recipeId);
- if (bom == null)//新配方
- {
- if (RecipeRollerNum != 0)
- {
- prop: string recipeID = Guid.NewGuid().ToString();//配方唯一ID,后期根据实际要求更改
- var res = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.RecipeId == recipeID);
- if (res == null)
- {
- Json<RecipeManage>.Data.Recipes.Add(new NewRecipeModel { RecipeId = recipeID, RecipeName = RecipeName, materialCollection = materials });//配方添加
-
- }
- else
- {
- goto prop;
- }
- MessageLog.GetInstance.ShowUserLog("新建配方成功");
- }
- else
- {
- MessageLog.GetInstance.ShowUserLog("新建配方无效【配方中没有添加原料】");
- }
- ActionManage.GetInstance.Send("CloseNewRecipeView");
- }
- else //已有配方,用于编辑
- {
- bom.materialCollection = materials;
- bom.RecipeName = RecipeName;
- ActionManage.GetInstance.Send("CloseNewRecipeView");
- }
- });
-
- }
- }
- }
|