123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891 |
- using Aitex.Core.RT.Log;
- using Caliburn.Micro.Core;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.ParameterCenter;
- using MECF.Framework.Common.RecipeCenter;
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
- using RecipeEditorLib.DGExtension.CustomColumn;
- using RecipeEditorLib.RecipeModel.Params;
- 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.Xml;
- namespace MECF.Framework.UI.Client.CenterViews.Parameter
- {
- public class ParameterDataBase : PropertyChangedBase
- {
- public bool IsChanged
- {
- get
- {
- bool changed = !IsSavedDesc;
- if (!changed)
- {
- //changed = ChkChanged(Steps) || ChkChanged(PopSettingSteps) || ChkChanged(StepTolerances);
- }
- if (!changed)
- {
- foreach (Param config in this.ConfigItems)
- {
- if (!config.IsSaved)
- {
- changed = true;
- break;
- }
- }
- }
- return changed;
- }
- }
- private bool _isSavedDesc;
- public bool IsSavedDesc
- {
- get { return _isSavedDesc; }
- set
- {
- this._isSavedDesc = value;
- this.NotifyOfPropertyChange("IsSavedDesc");
- }
- }
- private string name;
- public string Name
- {
- get { return this.name; }
- set
- {
- this.name = value;
- this.NotifyOfPropertyChange("Name");
- }
- }
- private string _chamberType;
- public string ChamberType
- {
- get { return this._chamberType; }
- set
- {
- this._chamberType = value;
- this.NotifyOfPropertyChange("ChamberType");
- }
- }
- private string _version;
- public string Version
- {
- get { return this._version; }
- set
- {
- this._version = value;
- this.NotifyOfPropertyChange("Version");
- }
- }
- private int _tableNumber;
- public int TableNumber
- {
- get { return this._tableNumber; }
- set
- {
- this._tableNumber = value;
- this.NotifyOfPropertyChange("TableNumber");
- }
- }
- private string _permission;
- public string Permission
- {
- get { return this._permission; }
- set
- {
- this._permission = value;
- this.NotifyOfPropertyChange("Permission");
- }
- }
- private string _level;
- public string Level
- {
- get { return this._level; }
- set
- {
- this._level = value;
- this.NotifyOfPropertyChange("Level");
- }
- }
- private string _prefixPath;
- public string PrefixPath
- {
- get { return _prefixPath; }
- set
- {
- _prefixPath = value;
- this.NotifyOfPropertyChange("PrefixPath");
- }
- }
- private string creator;
- public string Creator
- {
- get { return this.creator; }
- set
- {
- this.creator = value;
- this.NotifyOfPropertyChange("Creator");
- }
- }
- private DateTime createTime;
- public DateTime CreateTime
- {
- get { return this.createTime; }
- set
- {
- this.createTime = value;
- this.NotifyOfPropertyChange("CreateTime");
- }
- }
- private string description;
- public string Description
- {
- get { return this.description; }
- set
- {
- this.description = value;
- this.NotifyOfPropertyChange("Description");
- }
- }
- private string devisor;
- public string Revisor
- {
- get { return this.devisor; }
- set
- {
- this.devisor = value;
- this.NotifyOfPropertyChange("Revisor");
- }
- }
- private DateTime deviseTime;
- public DateTime ReviseTime
- {
- get { return this.deviseTime; }
- set
- {
- this.deviseTime = value;
- this.NotifyOfPropertyChange("ReviseTime");
- }
- }
- public ObservableCollection<ParameterTable> Steps { get; private set; }
- public Dictionary<string, ObservableCollection<ObservableCollection<Param>>> PopSettingSteps { get; private set; }
- public ObservableCollection<ObservableCollection<Param>> StepTolerances { get; private set; }
- public ObservableCollection<Param> ConfigItems { get; private set; }
- public List<int> StepNos = new List<int>();
- protected XmlDocument _doc;
- protected string _module;
- public bool ToleranceEnable { get; set; }
- public Dictionary<string, bool> PopEnable { get; set; }
- public bool IsCompatibleWithCurrentFormat { get; set; }
- public bool ChkChanged(Dictionary<string, ObservableCollection<ObservableCollection<Param>>> PopSteps)
- {
- return false;
- }
- public void CloneStep(ref ParameterTable destinationStep, ParameterTable originalStep)
- {
- //destinationStep.StepNo = originalStep.StepNo;
- destinationStep.Name = originalStep.Name;
- // destinationStep.UseTemp = originalStep.UseTemp;
- }
- public void CloneStep(ParameterTable destinationStep, ParameterTable originalStep)
- {
- //destinationStep.StepNo = originalStep.StepNo;
- destinationStep.Name = originalStep.Name;
- // destinationStep.UseTemp = originalStep.UseTemp;
- }
- public ParameterDataBase()
- {
- this.Steps = new ObservableCollection<ParameterTable>();
- StepTolerances = new ObservableCollection<ObservableCollection<Param>>();
- this.PopSettingSteps = new Dictionary<string, ObservableCollection<ObservableCollection<Param>>>();
- this.PopEnable = new Dictionary<string, bool>();
- ConfigItems = new ObservableCollection<Param>();
- IsSavedDesc = true;
- _doc = new XmlDocument();
- XmlElement node = _doc.CreateElement("Aitex");
- _doc.AppendChild(node);
- node.AppendChild(_doc.CreateElement("TableParameterData"));
- }
- public void Clear()
- {
- Steps.Clear();
- PopSettingSteps.Clear();
- StepTolerances.Clear();
- ConfigItems.Clear();
- ChamberType = "";
- Version = "";
- IsSavedDesc = true;
- _module = "";
- }
- public void DataSaved()
- {
- //foreach (Step parameters in Steps)
- //{
- // parameters.Apply(param => param.IsSaved = true);
- //}
- //foreach (ObservableCollection<ObservableCollection<Param>> popParameters in PopSettingSteps.Values)
- //{
- // foreach (ObservableCollection<Param> parameters in popParameters)
- // {
- // parameters.Apply(param => param.IsSaved = true);
- // }
- //}
- //foreach (ObservableCollection<Param> parameters in StepTolerances)
- //{
- // parameters.Apply(param => param.IsSaved = true);
- //}
- //ConfigItems.Apply(config => config.IsSaved = true);
- //IsSavedDesc = true;
- }
- public virtual void InitData(string prefixPath, string recipeName, string recipeContent, string module)
- {
- IsCompatibleWithCurrentFormat = false;
- _module = module;
- Name = recipeName;
- PrefixPath = prefixPath;
- try
- {
- _doc = new XmlDocument();
- _doc.LoadXml(recipeContent);
- if (!LoadHeader(_doc.SelectSingleNode("Aitex/TableParameterData")))
- return;
- XmlNodeList nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Module[@Name='{module}']/Step");
- if (nodeSteps == null)
- nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Step");
- LoadSteps(nodeSteps);
- var index = 1;
- foreach (ParameterTable parameters in Steps)
- {
- parameters.Value = index.ToString();
- index++;
- }
- // ValidLoopData();
- XmlNode nodeConfig =
- _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']/Config");
- if (nodeSteps == null)
- nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Config");
- // LoadConfigs(configDefine, nodeConfig);
- IsCompatibleWithCurrentFormat = true;
- }
- catch (Exception ex)
- {
- LOG.Write(ex);
- }
- }
- public void ChangeChamber(ObservableCollection<EditorDataGridTemplateColumnBase> columnDefine, Dictionary<string, ObservableCollection<Param>> PopSettingColumns
- , ObservableCollection<Param> configDefine, string module)
- {
- _module = module;
- try
- {
- XmlNodeList nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Module[@Name='{module}']/Step");
- if (nodeSteps == null)
- nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Step");
- LoadSteps(nodeSteps);
- XmlNode nodeConfig =
- _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']/Config");
- if (nodeSteps == null)
- nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Config");
- LoadConfigs(configDefine, nodeConfig);
- }
- catch (Exception ex)
- {
- LOG.Write(ex);
- }
- }
- public void SaveTo(string[] moduleList)
- {
- GetXmlString();
- XmlNode nodeModule = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{_module}']");
- if (nodeModule == null)
- {
- LOG.Write("Parameter not find modules," + Name);
- return;
- }
- XmlNode nodeData = nodeModule.ParentNode;
- foreach (var module in moduleList)
- {
- if (module == _module)
- {
- continue;
- }
- var child = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']");
- if (child != null)
- nodeData.RemoveChild(child);
- XmlElement node = nodeModule.Clone() as XmlElement;
- node.SetAttribute("Name", module);
- nodeData.AppendChild(node);
- }
- }
- protected int StepNo = 1;
- public Dictionary<string, string> StepTimeToDictionary(string stepTime)
- {
- Dictionary<string, string> steptimes = new Dictionary<string, string>();
- string[] tempTimes = stepTime.Split(';');
- foreach (var item in tempTimes)
- {
- string[] subTimes = item.Split(',');
- steptimes.Add(subTimes[0], subTimes[1]);
- }
- return steptimes;
- }
- public virtual ParameterTable CreateStep(XmlNode stepNode = null)
- {
- ParameterTable step = new ParameterTable();
- if (stepNode != null)
- {
- if (stepNode.Attributes["StepNo"] != null)
- step.StepNo = int.Parse(stepNode.Attributes["StepNo"].Value);
- if (stepNode.Attributes["Name"] != null)
- step.Name = stepNode.Attributes["Name"].Value;
- //if (stepNode.Attributes["UseTemp"] != null)
- // step.UseTemp = stepNode.Attributes["UseTemp"].Value;
- }
- else
- {
- step.StepNo = StepNo;
- step.Name = "Name" + StepNo.ToString();
- // step.UseTemp = "0";
- StepNo++;
- }
- return step;
- }
- protected bool LoadHeader(XmlNode nodeHeader)
- {
- if (nodeHeader == null)
- return false;
- if (nodeHeader.Attributes["CreatedBy"] != null)
- this.Creator = nodeHeader.Attributes["CreatedBy"].Value;
- if (nodeHeader.Attributes["CreationTime"] != null)
- this.CreateTime = DateTime.Parse(nodeHeader.Attributes["CreationTime"].Value);
- if (nodeHeader.Attributes["LastRevisedBy"] != null)
- this.Revisor = nodeHeader.Attributes["LastRevisedBy"].Value;
- if (nodeHeader.Attributes["LastRevisionTime"] != null)
- this.ReviseTime = DateTime.Parse(nodeHeader.Attributes["LastRevisionTime"].Value);
- if (nodeHeader.Attributes["Description"] != null)
- this.Description = nodeHeader.Attributes["Description"].Value;
- string chamberType = string.Empty;
- if (nodeHeader.Attributes["ChamberType"] != null)
- chamberType = nodeHeader.Attributes["ChamberType"].Value;
- if (!string.IsNullOrEmpty(chamberType) && chamberType != ChamberType)
- {
- LOG.Write($"{chamberType} is not accordance with {ChamberType}");
- return false;
- }
- if (nodeHeader.Attributes["Version"] != null)
- Version = nodeHeader.Attributes["Version"].Value;
- if (nodeHeader.Attributes["TableNumber"] != null)
- TableNumber = Convert.ToInt32(nodeHeader.Attributes["TableNumber"].Value);
- if (nodeHeader.Attributes["Permission"] != null)
- this.Permission = nodeHeader.Attributes["Permission"].Value;
- LoadHeaderExtend(nodeHeader);
- return true;
- }
- public virtual void LoadHeaderExtend(XmlNode nodeHeader)
- {
-
- }
- public virtual void LoadSteps(XmlNodeList steps)
- {
- Steps.Clear();
- PopSettingSteps.Clear();
- StepTolerances.Clear();
- StepNos.Clear();
- int index = 1;
- foreach (XmlNode nodeStep in steps)
- {
- ParameterTable step = this.CreateStep(nodeStep);
- StepNos.Add(step.StepNo);
- //(rows[1] as StepParam).Value = index.ToString();
- //CreateStepTolerance(columns, popSettingColumns, nodeStep, out ObservableCollection<Param> step, out ObservableCollection<Param> warning,
- // out ObservableCollection<Param> alarm, out Dictionary<string, ObservableCollection<Param>> popSettingStep
- // );
- //StepTolerances.Add(step);
- //(step[1] as DoubleParam).Value = index.ToString();
- //StepTolerances.Add(warning);
- //(warning[1] as DoubleParam).Value = "Warn(%)";
- //StepTolerances.Add(alarm);
- //(alarm[1] as DoubleParam).Value = "Alarm(%)";
- Steps.Add(step);
- //foreach (string key in popSettingStep.Keys)
- //{
- // if (!PopSettingSteps.ContainsKey(key))
- // {
- // PopSettingSteps.Add(key, new ObservableCollection<ObservableCollection<Param>>());
- // }
- // PopSettingSteps[key].Add(popSettingStep[key]);
- //}
- index++;
- }
- if (StepNos == null || StepNos.Count == 0)
- {
- StepNo = 1;
- }
- else
- {
- StepNo = StepNos.Max() + 1;
- }
- }
- private void LoadConfigs(ObservableCollection<Param> configDefine, XmlNode configNode)
- {
- ConfigItems.Clear();
- foreach (var param in configDefine)
- {
- if (param is DoubleParam param1)
- {
- var config = new DoubleParam()
- {
- Name = param.Name,
- Value = param1.Value,
- DisplayName = param.DisplayName,
- Minimun = param1.Minimun,
- Maximun = param1.Maximun,
- Resolution = param1.Resolution
- };
- if (configNode != null && configNode.Attributes[param1.Name] != null)
- config.Value = configNode.Attributes[param1.Name].Value;
- ConfigItems.Add(config);
- }
- if (param is StringParam paramString)
- {
- var config = new StringParam()
- {
- Name = param.Name,
- Value = paramString.Value,
- DisplayName = param.DisplayName,
- };
- if (configNode != null && configNode.Attributes[paramString.Name] != null)
- config.Value = configNode.Attributes[paramString.Name].Value;
- ConfigItems.Add(config);
- }
- }
- }
- //public ObservableCollection<Param> CloneStep(ObservableCollection<EditorDataGridTemplateColumnBase> _columns, ObservableCollection<Param> _sourceParams)
- //{
- // ObservableCollection<Param> targetParams = this.CreateStep(_columns);
- // for (var index = 0; index < _sourceParams.Count; index++)
- // {
- // if (_sourceParams[index] is StringParam)
- // {
- // ((StringParam)targetParams[index]).Value = ((StringParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is IntParam)
- // {
- // ((IntParam)targetParams[index]).Value = ((IntParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is ComboxParam)
- // {
- // ((ComboxParam)targetParams[index]).Value = ((ComboxParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is LoopComboxParam)
- // {
- // ((LoopComboxParam)targetParams[index]).Value = ((LoopComboxParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is BoolParam)
- // {
- // ((BoolParam)targetParams[index]).Value = ((BoolParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is IntParam)
- // {
- // ((IntParam)targetParams[index]).Value = ((IntParam)_sourceParams[index]).Value;
- // }
- // else if (_sourceParams[index] is DoubleParam)
- // {
- // ((DoubleParam)targetParams[index]).Value = ((DoubleParam)_sourceParams[index]).Value;
- // }
- // targetParams[index].Parent = targetParams;
- // }
- // return targetParams;
- //}
- private string GetConditionCheckXmlString(ParameterTable parameters)
- {
- StringBuilder conditionCheckStr = new StringBuilder();
- string externalSensor = "";
- conditionCheckStr.Append($"{externalSensor};");
- //conditionCheckStr.Append($"TempUpper:{parameters.TempUpper.ToString()};");
- //conditionCheckStr.Append($"TempLower:{parameters.TempLower.ToString()};");
- return conditionCheckStr.ToString();
- }
- public virtual string GetXmlString()
- {
- XmlElement nodeData = _doc.SelectSingleNode($"Aitex/TableParameterData") as XmlElement;
- nodeData.SetAttribute("CreatedBy", Creator);
- nodeData.SetAttribute("CreationTime", CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
- nodeData.SetAttribute("LastRevisedBy", Revisor);
- nodeData.SetAttribute("LastRevisionTime", ReviseTime.ToString("yyyy-MM-dd HH:mm:ss"));
- nodeData.SetAttribute("Description", Description);
- nodeData.SetAttribute("ParameterChamberType", ChamberType);
- nodeData.SetAttribute("Version", Version);
- nodeData.SetAttribute("TableNumber", TableNumber.ToString());
- nodeData.SetAttribute("Permission", Permission);
- nodeData.SetAttribute("ParameterLevel", Level);
- XmlNode nodeModule = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{_module}']");
- if (nodeModule == null)
- {
- nodeModule = _doc.CreateElement("Module");
- nodeData.AppendChild(nodeModule);
- }
- nodeModule.RemoveAll();
- (nodeModule as XmlElement).SetAttribute("Name", _module);
- int i = 0;
- foreach (ParameterTable parameters in Steps)
- {
- XmlElement nodeWarning = _doc.CreateElement("Warning");
- XmlElement nodeAlarm = _doc.CreateElement("Alarm");
- Dictionary<string, XmlElement> nodePop = new Dictionary<string, XmlElement>();
- foreach (string key in PopEnable.Keys)
- {
- nodePop.Add(key, _doc.CreateElement(key));
- }
- XmlElement nodeStep = _doc.CreateElement("Step");
- if (ToleranceEnable)
- {
- nodeStep.AppendChild(nodeWarning);
- nodeStep.AppendChild(nodeAlarm);
- }
- nodeStep.SetAttribute("StepNo", parameters.StepNo.ToString());
- nodeStep.SetAttribute("Name", parameters.Name);
- // nodeStep.SetAttribute("UseTemp", parameters.UseTemp);
- nodeModule.AppendChild(nodeStep);
- i++;
- }
- XmlElement nodeConfig = _doc.CreateElement("Config");
- foreach (Param parameter in ConfigItems)
- {
- if (parameter.Visible == System.Windows.Visibility.Visible)
- {
- if (parameter is IntParam)
- nodeConfig.SetAttribute(parameter.Name, ((IntParam)parameter).Value.ToString());
- else if (parameter is DoubleParam)
- {
- string strValue = ((DoubleParam)parameter).Value;
- bool succed = double.TryParse(strValue, out double dValue);
- if (!succed)
- {
- MessageBox.Show($"The set value of {parameter.DisplayName} is {strValue}, not a valid value");
- return null;
- }
- var config = ConfigItems.Where(m => m.Name == parameter.Name).FirstOrDefault();
- if (config is DoubleParam param1)
- {
- if (param1.Minimun == 0 && param1.Maximun == 0)
- {
- //没有设定范围
- }
- else if (dValue > param1.Maximun || dValue < param1.Minimun)
- {
- MessageBox.Show($"The set value of {parameter.DisplayName} is {dValue}, out of the range {param1.Minimun}~{param1.Maximun}");
- return null;
- }
- }
- nodeConfig.SetAttribute(parameter.Name, ((DoubleParam)parameter).Value.ToString());
- }
- else if (parameter is StringParam)
- nodeConfig.SetAttribute(parameter.Name, ((StringParam)parameter).Value.ToString());
- else if (parameter is ComboxParam)
- nodeConfig.SetAttribute(parameter.Name, ((ComboxParam)parameter).Value.ToString());
- else if (parameter is LoopComboxParam)
- nodeConfig.SetAttribute(parameter.Name, ((LoopComboxParam)parameter).Value.ToString());
- else if (parameter is PositionParam)
- nodeConfig.SetAttribute(parameter.Name, ((PositionParam)parameter).Value.ToString());
- else if (parameter is BoolParam)
- nodeConfig.SetAttribute(parameter.Name, ((BoolParam)parameter).Value.ToString());
- else if (parameter is StepParam)
- nodeConfig.SetAttribute(parameter.Name, ((StepParam)parameter).Value.ToString());
- else if (parameter is MultipleSelectParam)
- {
- List<string> selected = new List<string>();
- ((MultipleSelectParam)parameter).Options.Apply(
- opt =>
- {
- if (opt.IsChecked)
- selected.Add(opt.ControlName);
- }
- );
- nodeConfig.SetAttribute(parameter.Name, string.Join(",", selected));
- }
- }
- }
- nodeModule.AppendChild(nodeConfig);
- return _doc.OuterXml;
- }
- private void SetAttribute(ObservableCollection<Param> Parameters, XmlElement PopSettingStep)
- {
- if (Parameters != null)
- foreach (Param parameter1 in Parameters)
- {
- if (parameter1.Visible != System.Windows.Visibility.Visible)
- continue;
- if (parameter1 is IntParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((IntParam)parameter1).Value.ToString());
- else if (parameter1 is DoubleParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((DoubleParam)parameter1).Value.ToString());
- else if (parameter1 is StringParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((StringParam)parameter1).Value.ToString());
- else if (parameter1 is ComboxParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((ComboxParam)parameter1).Value.ToString());
- else if (parameter1 is LoopComboxParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((LoopComboxParam)parameter1).Value.ToString());
- else if (parameter1 is PositionParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((PositionParam)parameter1).Value.ToString());
- else if (parameter1 is BoolParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((BoolParam)parameter1).Value.ToString());
- else if (parameter1 is StepParam)
- PopSettingStep.SetAttribute(parameter1.Name, ((StepParam)parameter1).Value.ToString());
- else if (parameter1 is MultipleSelectParam)
- {
- List<string> selected1 = new List<string>();
- ((MultipleSelectParam)parameter1).Options.Apply(
- opt =>
- {
- if (opt.IsChecked)
- selected1.Add(opt.ControlName);
- }
- );
- PopSettingStep.SetAttribute(parameter1.Name, string.Join(",", selected1));
- }
- }
- }
- public string ToXmlString()
- {
- StringBuilder builder = new StringBuilder();
- builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
- builder.Append(string.Format("<Aitex><TableRecipeData CreatedBy=\"{0}\" CreationTime=\"{1}\" LastRevisedBy=\"{2}\" LastRevisionTime=\"{3}\" Description=\"{4}\" RecipeChamberType=\"{5}\" RecipeVersion=\"{6}\" TableNumber=\"{7}\">", this.Creator, this.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), this.Revisor, this.ReviseTime.ToString("yyyy-MM-dd HH:mm:ss"), this.Description, ChamberType, Version, TableNumber));
- foreach (ParameterTable parameters in Steps)
- {
- builder.Append("<Step ");
- builder.Append("Name=\"" + parameters.Name + "\" ");
- builder.Append("/>");
- }
- //builder.Append("<Config ");
- //foreach (Param parameter in ConfigItems)
- //{
- // if (parameter.Visible == System.Windows.Visibility.Visible)
- // {
- // if (parameter is IntParam)
- // builder.Append(parameter.Name + "=\"" + ((IntParam)parameter).Value + "\" ");
- // else if (parameter is DoubleParam)
- // builder.Append(parameter.Name + "=\"" + ((DoubleParam)parameter).Value + "\" ");
- // else if (parameter is StringParam)
- // builder.Append(parameter.Name + "=\"" + ((StringParam)parameter).Value + "\" ");
- // else if (parameter is ComboxParam)
- // builder.Append(parameter.Name + "=\"" + ((ComboxParam)parameter).Value + "\" ");
- // else if (parameter is LoopComboxParam)
- // builder.Append(parameter.Name + "=\"" + ((LoopComboxParam)parameter).Value + "\" ");
- // else if (parameter is PositionParam)
- // builder.Append(parameter.Name + "=\"" + ((PositionParam)parameter).Value + "\" ");
- // else if (parameter is BoolParam)
- // builder.Append(parameter.Name + "=\"" + ((BoolParam)parameter).Value + "\" ");
- // else if (parameter is StepParam)
- // builder.Append(parameter.Name + "=\"" + ((StepParam)parameter).Value + "\" ");
- // else if (parameter is MultipleSelectParam)
- // {
- // List<string> selected = new List<string>();
- // ((MultipleSelectParam)parameter).Options.Apply(
- // opt =>
- // {
- // if (opt.IsChecked)
- // selected.Add(opt.ControlName);
- // }
- // );
- // builder.Append(parameter.Name + "=\"" + string.Join(",", selected) + "\" ");
- // }
- // }
- //}
- builder.Append("/>");
- builder.Append("</TableRecipeData></Aitex>");
- return builder.ToString();
- }
- }
- public class ParameterTable : PropertyChangedBase
- {
- public string Value { get; set; }
- private int _stepNo;
- public int StepNo
- {
- get => _stepNo; set
- {
- _stepNo = value;
- NotifyOfPropertyChange("StepNo");
- }
- }
- private string _name;
- public string Name
- {
- get => _name; set
- {
- _name = value;
- NotifyOfPropertyChange("Name");
- }
- }
- private string _useTemp;
- public string UseTemp
- {
- get => _useTemp;
- set
- {
- _useTemp = value;
- NotifyOfPropertyChange("UseTemp");
- }
- }
- private bool _isChecked;
- public bool IsChecked {
- get=> _isChecked;
- set
- {
- _isChecked = value;
- NotifyOfPropertyChange("IsChecked");
- } }
- public Visibility IsVisibility { get; set; } = Visibility.Visible;
-
- public ParameterTable() { }
- public ParameterTable Clone()//深拷贝
- {
- return this.MemberwiseClone() as ParameterTable;
- }
- public ParameterTable(ParameterDataBase recipeData)
- {
- if (recipeData.Steps.Count <= 0) return;
- SetCurrentRecipeStep(recipeData, recipeData.Steps[0]);
- }
- public ParameterTable(ParameterDataBase recipeData, int selectedStepNo)
- {
- ParameterTable step = recipeData.Steps.Where(x => x.StepNo == selectedStepNo).FirstOrDefault();
- SetCurrentRecipeStep(recipeData, step);
- }
- public virtual void SetCurrentRecipeStep(ParameterDataBase recipeData, ParameterTable step)
- {
- }
- }
-
- }
|