123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- using Caliburn.Micro;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.OperationCenter;
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
- using MECF.Framework.UI.Client.CenterViews.Dialogs;
- using OpenSEMI.ClientBase;
- using System;
- using System.Collections.Generic;
- using System.Globalization;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Media;
- using FurnaceUI.Models;
- namespace FurnaceUI.Views.Editors
- {
- public class RecipeFlowSettingViewModel : FurnaceUIViewModelBase
- {
- public bool IsSave { get; set; } = false;
- public string SelectMfcFlow { get; set; }
- public double MaxValue { get; set; }
- private ConfigNode _levelOneNode;
- public ConfigNode levelOneNode
- {
- get { return _levelOneNode; }
- set { _levelOneNode = value; this.NotifyOfPropertyChange(nameof(levelOneNode)); }
- }
- public string SelectFlow { get; set; }
- private ConfigNode _rootNode;
- private bool isFlowEnable;
- public bool IsFlowEnable
- {
- get { return isFlowEnable; }
- set { isFlowEnable = value; NotifyOfPropertyChange(nameof(IsFlowEnable)); }
- }
- private string selectFlowValue;
- public string SelectFlowValue
- {
- get
- {
- return selectFlowValue;
- }
- set
- {
- selectFlowValue = value;
- NotifyOfPropertyChange(SelectFlowValue);
- }
- }
- private string _CurrentNodeName = string.Empty;
- private List<ConfigItem> currenItems;
- public List<ConfigItem> CurrenItems
- {
- get { return currenItems; }
- set { currenItems = value; this.NotifyOfPropertyChange(nameof(CurrenItems)); }
- }
- private string _FlowModel;
- public string FlowModel { get { return _FlowModel; } set { _FlowModel = value; NotifyOfPropertyChange(nameof(FlowModel)); } }
- public string RecipeType { get; set; }
- public Visibility IsVisibilityContinue { get; set; } = Visibility.Visible;
- protected override void OnInitialize()
- {
- base.OnInitialize();
- //if (RecipeType == "Sub" || RecipeType == "Abort Sub" || RecipeType == "Abort")
- // IsVisibilityContinue = Visibility.Visible;
- IsFlowEnable = false;
- _rootNode = SystemConfigProvider.Instance.GetConfig(true);
- var MfcItems = QueryDataClient.Instance.Service.GetConfigItemList();
- var items = MfcItems.Where(x => x.Name == "GasName").ToList();
- var flowItem = items.Where(s => s.Default == SelectMfcFlow.ToUpper()).ToList();
- levelOneNode = new ConfigNode();
- levelOneNode = FindNodeByName(_rootNode, $"PM1.RecipeEditParameter.FlowSetting.{flowItem[0].Default}");
- foreach (var item in levelOneNode.Items)
- {
- item.Unit = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{levelOneNode.Display}.FlowUnit");
- }
- InitItemsCurrentValue(levelOneNode, false);
- }
- private void InitItemsCurrentValue(ConfigNode node, bool initSubItems = true)
- {
- if (node == null) return;
- CurrenItems = node.Items;
- _CurrentNodeName = string.IsNullOrEmpty(node.Path) ? node.Name : $"{node.Path}.{node.Name}";
- if (CurrenItems == null || CurrenItems.Count <= 0)
- {
- if (!initSubItems) return;
- foreach (var item in node.SubNodes)
- {
- InitItemsCurrentValue(item);
- }
- }
- else
- {
- GetDataOfConfigItems();
- }
- }
- private void GetDataOfConfigItems()
- {
- if (CurrenItems == null)
- return;
- for (int i = 0; i < CurrenItems.Count; i++)
- {
- var isInstalled = QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{CurrenItems[i].Name}.IsMFCInstalled");
- if (isInstalled != null && !(bool)isInstalled)
- CurrenItems[i].Visible = false;
- else
- CurrenItems[i].Visible = true;
- string key = String.Format("{0}{1}{2}", _CurrentNodeName, ".", CurrenItems[i].Name);
- CurrenItems[i].CurrentValue = SystemConfigProvider.Instance.GetValueByName(key);
- CurrenItems[i].Path = key;
- CurrenItems[i].StringValue = CurrenItems[i].CurrentValue;
- }
- }
- private ConfigNode FindNodeByName(ConfigNode parentNode, string strName)
- {
- string strCates = strName.Split('.')[0];
- ConfigNode node = parentNode.SubNodes.Find((x) => x.Name == strCates);
- if (node == null)
- return parentNode;
- else
- return FindNodeByName(node, strName.Replace(strCates + ".", ""));
- }
- public void SetFlowValue(string nameCmd, string valueCmd)
- {
- FlowModel = nameCmd;
- if (FlowModel == "Value")
- {
- SelectFlow = nameCmd;
- IsFlowEnable = true;
- }
- else if (FlowModel == "Force")
- {
- SelectFlow = valueCmd;
- IsFlowEnable = false;
- }
- else
- {
- SelectFlow = nameCmd + ":" + valueCmd;
- IsFlowEnable = false;
- }
- }
- public void SetFlowCmd(string nameCmd)
- {
- switch (nameCmd)
- {
- case "Save":
- IsSave = true;
- if (FlowModel == "Value")
- {
- SelectFlow = SelectFlowValue;
- }
- if (string.IsNullOrEmpty(SelectFlow))
- {
- DialogBox.ShowWarning("flow value is empty");
- return;
- }
- ((Window)GetView()).DialogResult = true;
- break;
- case "Close":
- IsSave = false;
- ((Window)GetView()).DialogResult = false;
- break;
- default:
- break;
- }
- }
- }
- }
|