123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using ExcelLibrary.BinaryFileFormat;
- using FurnaceUI.Models;
- using MECF.Framework.Common.OperationCenter;
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
- using MECF.Framework.UI.Client.ClientBase;
- using Microsoft.DwayneNeed.Numerics;
- using Newtonsoft.Json;
- using OpenSEMI.ClientBase;
- using SciChart.Core.Extensions;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Forms;
- using System.Xml.Linq;
- namespace FurnaceUI.Views.Parameter
- {
- public class AUXEditViewModel : FurnaceUIViewModelBase
- {
- #region 页面构造函数及其重载方法
- protected override void OnInitialize()
- {
- base.OnInitialize();
- GetModifyValue();
- foreach (var item in TableNodeItems)
- {
- var key = $"{item.Path}.{item.Name}";
- ValueList.Add(new PageValue() { Path = key, CurrentValue = item.CurrentValue, Max = item.Max, Min = item.Min, Type = item.Type });
- }
- }
- #endregion
- #region 模型字段
- public List<ConfigItem> TableNodeItems { get; set; } = new List<ConfigItem>();
- /// </summary>
- private bool _isModifyAll = false;
- public bool IsModifyAll
- {
- get { return _isModifyAll; }
- set { _isModifyAll = value; this.NotifyOfPropertyChange(nameof(IsModifyAll)); }
- }
- public ObservableCollection<PageValue> ValueList { get; set; } = new ObservableCollection<PageValue>();
- #endregion
- private void GetModifyValue()
- {
- var value = SystemConfigProvider.Instance.GetValueByName("PM1.RecipeEditParameter.AUX.IsModifyAll");
- IsModifyAll = bool.Parse(value);
- }
- public void SaveBtnClick()
- {
- List<bool> bools = new List<bool>();
- foreach (var item in ValueList)
- {
- var name = item.Path.Split('.').LastOrDefault();
- var canModifyAI = !IsModifyAll && name.Equals("AI");
- var canModifyUnit = !IsModifyAll && name.Equals("Unit");
- var canModifyAO = !IsModifyAll && name.Equals("AO");
- var canModifyInstalled = name.Equals("IsInstalled");
- if (canModifyAI || canModifyAO || canModifyUnit || canModifyInstalled) continue;
- if (!name.Equals("Unit") && string.IsNullOrEmpty(item.CurrentValue))
- {
- DialogBox.ShowWarning($"{name}值不可为空");
- bools.Add(false);
- return;
- }
- if (item.Type.Equals(DataType.String) || item.Type.Equals(DataType.Unknown))
- {
- bools.Add(true);
- continue;
- }
- double number;
- if (!double.TryParse(item.CurrentValue, out number))
- {
- DialogBox.ShowWarning($"{name}值必须为double类型");
- bools.Add(false);
- return;
- }
- if (!IsInRange(number, item.Min, item.Max))
- {
- DialogBox.ShowWarning($"{name}值必须位于{item.Min}-{item.Max}之间");
- bools.Add(false);
- return;
- }
- bools.Add(true);
- }
- if (bools != null && !bools.Contains(false))
- {
- foreach (var item in ValueList)
- {
- var name = item.Path.Split('.').LastOrDefault();
- var canModifyAI = !IsModifyAll && name.Equals("AI");
- var canModifyUnit = !IsModifyAll && name.Equals("Unit");
- var canModifyAO = !IsModifyAll && name.Equals("AO");
- var canModifyInstalled = name.Equals("IsInstalled");
- if (canModifyUnit || canModifyAO || canModifyAI || canModifyInstalled)
- {
- continue;
- }
- InvokeClient.Instance.Service.DoOperation("System.SetConfig", item.Path, item.CurrentValue);
- }
- }
- ((Window)GetView()).DialogResult = true;
- }
- private bool IsInRange(double num, double min, double max)
- {
- return (num >= min && num <= max);
- }
- public void CancelBtnClick()
- {
- ((Window)GetView()).DialogResult = false;
- }
- }
- }
|