TitrationSettingWindowViewModel.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Prism.Mvvm;
  2. using System.Linq;
  3. using Prism.Events;
  4. using SHJX.Service.Common.Event;
  5. using SHJX.Service.Common.Interface;
  6. using SHJX.Service.Control.Interface;
  7. using SHJX.Service.Model.CRUDModules;
  8. using System.Collections.ObjectModel;
  9. using System;
  10. using Panuon.UI.Silver;
  11. namespace SHJX.Service.Shell.ViewModels.Setting
  12. {
  13. public class TitrationSettingWindowViewModel : BindableBase
  14. {
  15. #region Field
  16. private readonly ILogService _log;
  17. private readonly IEventAggregator _ea;
  18. private readonly ISettingService _service;
  19. #endregion
  20. #region Property
  21. public ObservableCollection<TitrationValue> TitrationValues { get; set; }
  22. public ObservableCollection<Titration2Value> Titration2Values { get; set; }
  23. public ObservableCollection<CameraValue> CameraValues { get; set; }
  24. public ObservableCollection<Camera2Value> Camera2Values { get; set; }
  25. public ObservableCollection<LiquidAmount> LiquidAmounts { get; set; }
  26. #endregion
  27. public TitrationSettingWindowViewModel(IEventAggregator ea, ILogService log, ISettingService service)
  28. {
  29. _ea = ea;
  30. _log = log;
  31. _service = service;
  32. TitrationValues = new ObservableCollection<TitrationValue>(_service.GetData<TitrationValue>());
  33. Titration2Values = new ObservableCollection<Titration2Value>(_service.GetData<Titration2Value>());
  34. CameraValues = new ObservableCollection<CameraValue>(_service.GetData<CameraValue>());
  35. Camera2Values = new ObservableCollection<Camera2Value>(_service.GetData<Camera2Value>());
  36. LiquidAmounts = new ObservableCollection<LiquidAmount>(_service.GetData<LiquidAmount>());
  37. _ea.GetEvent<UpdateSettingEvent>().Subscribe(UpdateSetting);
  38. _ea.GetEvent<SettingClosingEvent>().Subscribe(() =>
  39. {
  40. _ea.GetEvent<UpdateSettingEvent>().Unsubscribe(UpdateSetting);
  41. });
  42. }
  43. #region Method
  44. private void UpdateSetting()
  45. {
  46. var ret = _service.UpdateSetting(TitrationValues.ToList());
  47. ret = ret && _service.UpdateSetting(Titration2Values.ToList());
  48. ret = ret && _service.UpdateSetting(CameraValues.ToList());
  49. ret = ret && _service.UpdateSetting(Camera2Values.ToList());
  50. ret = ret && _service.UpdateSetting(LiquidAmounts.ToList());
  51. Notice.Show($"设备相关设置更新{(ret ? "成功" : "失败")}", "Info", 3, Panuon.UI.Silver.MessageBoxIcon.Info);
  52. }
  53. #endregion
  54. }
  55. }