123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Aitex.Core.UI.MVVM;
- using Aitex.Core.RT.Log;
- using System.Xml;
- using Aitex.Core.RT.ConfigCenter;
- namespace Aitex.Core.UI.View.Common
- {
- public class ParameterViewModel : ViewModelBase
- {
- public ParameterViewModel()
- {
- }
- protected virtual string GetConfigXmlContent()
- {
- return "";
- }
- public virtual bool SaveConfigSection(string groupName, List<ConfigEntry> lstEntry)
- {
- return false;
- }
- //description, navigation, sectionPath
- public List<KeyValuePair<string, string>> GetSectionList()
- {
- List<KeyValuePair<string, string>> result = new List<KeyValuePair<string, string>>();
- string xmlContent = GetConfigXmlContent();
- if (string.IsNullOrEmpty(xmlContent))
- {
- LOG.Error("没有读取到SC配置文件");
- return result;
- }
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(xmlContent);
- XmlNodeList lst = doc.SelectSingleNode("/SCData").ChildNodes;
- foreach (XmlElement node in lst)
- {
- result.Add(new KeyValuePair<string, string>(GetNodeText(node, "Description"), string.Format("/SCData/Section[@Name='{0}']", GetNodeText(node, "Name"))));
- }
- return result;
- }
- public List<ConfigEntry> GetConfigEntries(string sectionPath)
- {
- List<ConfigEntry> result = new List<ConfigEntry>();
- string xmlContent = GetConfigXmlContent();
- if (string.IsNullOrEmpty(xmlContent))
- {
- LOG.Error("没有读取到SC配置文件");
- return result;
- }
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(xmlContent);
- XmlNode parentNode = doc.SelectSingleNode(sectionPath);
- XmlNodeList lstNode = parentNode.ChildNodes;
- foreach (XmlNode node in lstNode)
- {
- try
- {
- result.Add(new ConfigEntry()
- {
- EntryName = GetNodeText(node, "Name"),
- SectionName = GetNodeText(node, "Name"),
- Description = GetNodeText(node, "Description"),
- Type = GetNodeText(node, "Type"),
- Default = GetNodeText(node, "Default"),
- RangeLowLimit = GetNodeText(node, "RangeLowLimit"),
- RangeUpLimit = GetNodeText(node, "RangeUpLimit"),
- SystemType = GetNodeText(parentNode, "Name"),
- Unit = GetNodeText(node, "Unit"),
- Value = ((string.IsNullOrEmpty(GetNodeText(node, "Type")) || GetNodeText(node, "Type") == "Double") ?
- Math.Round(Convert.ToDouble(GetNodeText(node, "Value")), 3).ToString() : GetNodeText(node, "Value")),
- XPath = string.Format("{0}/{1}", sectionPath, node.Name),
- });
- }
- catch (Exception ex)
- {
- LOG.Error("SC配置项错误," + node.Name, ex);
- }
- }
- return result;
- }
- string GetNodeText(XmlNode parent, string child, string defaultValue = "")
- {
- return (parent.Attributes[child] == null) ? defaultValue : parent.Attributes[child].Value;
- }
- }
- }
|