| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using Prism.Mvvm;
- using System.Linq;
- using Prism.Events;
- using Prism.Commands;
- using System.Windows;
- using Panuon.UI.Silver;
- using SHJX.Service.Common.Event;
- using SHJX.Service.Common.Interface;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Model.CRUDModules;
- using System.Collections.ObjectModel;
- namespace SHJX.Service.Shell.ViewModels.Setting
- {
- public class HeatingSettingWindowViewModel : BindableBase
- {
- #region Field
- private readonly ILogService _log;
- private readonly IEventAggregator _ea;
- private readonly ISettingService _service;
- #endregion
- #region Property
- private double _dissolveTemperatureValue;
- public double DissolveTemperatureValue
- {
- get => _dissolveTemperatureValue;
- set => SetProperty(ref _dissolveTemperatureValue, value);
- }
- private double _titrationTemperatureValue;
- public double TitrationTemperatureValue
- {
- get => _titrationTemperatureValue;
- set => SetProperty(ref _titrationTemperatureValue, value);
- }
- private Visibility _temperatureValueChangedTextVisibility;
- public Visibility TemperatureValueChangedTextVisibility
- {
- get => _temperatureValueChangedTextVisibility;
- set => SetProperty(ref _temperatureValueChangedTextVisibility, value);
- }
- public ObservableCollection<PID> Pids { get; set; }
- public ObservableCollection<ExecuteTime> ExecuteTimes { get; set; }
- #endregion
- public HeatingSettingWindowViewModel(IEventAggregator ea, ILogService log, ISettingService service)
- {
- _ea = ea;
- _log = log;
- _service = service;
- DissolveTemperatureValue = _service.DissolveTemperatureValue;
- TitrationTemperatureValue = _service.TitrationTemperatureValue;
- TemperatureValueChangedTextVisibility = Visibility.Hidden;
- Pids = new ObservableCollection<PID>(_service.GetData<PID>());
- ExecuteTimes = new ObservableCollection<ExecuteTime>(_service.GetData<ExecuteTime>());
- _ea.GetEvent<UpdateSettingEvent>().Subscribe(UpdateSetting);
- _ea.GetEvent<SettingClosingEvent>().Subscribe(() =>
- {
- _ea.GetEvent<UpdateSettingEvent>().Unsubscribe(UpdateSetting);
- });
- }
- #region Command
- private DelegateCommand _temperatureValueChangedCommand;
- public DelegateCommand TemperatureValueChangedCommand => _temperatureValueChangedCommand ??= new DelegateCommand(ExecuteTemperatureValueChangedCommand);
- #endregion
- #region Execute
- private void ExecuteTemperatureValueChangedCommand()
- {
- TemperatureValueChangedTextVisibility = Visibility.Visible;
- }
- #endregion
- #region Method
- public void UpdateSetting()
- {
- var ret = _service.UpdateSetting(Pids.ToList());
- ret = ret && _service.UpdateSetting(ExecuteTimes.ToList());
- _service.UpdateDissolveTemperatureValue(DissolveTemperatureValue);
- _service.UpdateTitrationTemperatureValue(TitrationTemperatureValue);
- Notice.Show($"设备相关设置更新{(ret ? "成功" : "失败")}", "Info", 3, Panuon.UI.Silver.MessageBoxIcon.Info);
- }
- #endregion
- }
- }
|