终端一体化运控平台
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

66 řádky
2.7 KiB

  1. using BPASmartClient.CustomResource.UserControls;
  2. using BPASmartClient.CustomResource.UserControls.MessageShow;
  3. using BPASmartClient.FoodStationTest.Model;
  4. using BPASmartClient.Helper;
  5. using Microsoft.Toolkit.Mvvm.ComponentModel;
  6. using Microsoft.Toolkit.Mvvm.Input;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. namespace BPASmartClient.FoodStationTest.ViewModel
  10. {
  11. public class DeviceMaterialParViewModel : ObservableObject
  12. {
  13. public DeviceMaterialParViewModel()
  14. {
  15. deviceParModels = Json<DevicePar>.Data.deviceParModels;
  16. RemoveCommand = new RelayCommand<object>((o) =>
  17. {
  18. var res = deviceParModels.FirstOrDefault(p => p.MaterialName == o?.ToString());
  19. if (res != null)
  20. deviceParModels.Remove(res);
  21. NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"{o.ToString()}:原料删除成功!");
  22. });
  23. AddCommand = new RelayCommand(() => { deviceParModels.Add(new DeviceParMode()); });
  24. SaveCommand = new RelayCommand(() =>
  25. {
  26. if (deviceParModels == null || deviceParModels.Count <= 0)
  27. {
  28. NoticeDemoViewModel.OpenMsg(EnumPromptType.Warn, App.MainWindow, "警告", $"没有可保存的参数!");
  29. return;
  30. }
  31. for (int i = 0; i < deviceParModels.Count; i++)
  32. {
  33. if (deviceParModels.Where(p => p.MaterialName == deviceParModels.ElementAt(i).MaterialName)?.ToList()?.Count >= 2)
  34. deviceParModels.ElementAt(i).IsRedundant = true;
  35. else
  36. deviceParModels.ElementAt(i).IsRedundant = false;
  37. }
  38. if (deviceParModels.FirstOrDefault(p => p.IsRedundant == true) != null)
  39. {
  40. NoticeDemoViewModel.OpenMsg(EnumPromptType.Error, App.MainWindow, "错误", $"原料名称冲突,请检查后重试!");
  41. return;
  42. }
  43. deviceParModels.Where(P => P.MaterialName.Length <= 0)?.ToList()?.ForEach(item =>
  44. {
  45. Json<DevicePar>.Data.deviceParModels.Remove(item);
  46. });
  47. Json<DevicePar>.Save();
  48. NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"原料参数保存成功!");
  49. });
  50. }
  51. public ObservableCollection<DeviceParMode> deviceParModels { get; set; }
  52. public RelayCommand<object> RemoveCommand { get; set; }
  53. public RelayCommand AddCommand { get; set; }
  54. public RelayCommand SaveCommand { get; set; }
  55. }
  56. }