SystemConfigManager.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Xml;
  7. using Aitex.Common.Util;
  8. using Aitex.Core.RT.Log;
  9. using Aitex.Core.Util;
  10. using MECF.Framework.Common.DataCenter;
  11. using MECF.Framework.Common.Equipment;
  12. using VirgoUI.Client;
  13. namespace Virgo_D.UI.Config
  14. {
  15. class SystemConfigManager : Singleton<SystemConfigManager>
  16. {
  17. private XmlDocument _domLocal = new XmlDocument();
  18. private XmlDocument _domDefaultA = new XmlDocument();
  19. private XmlDocument _domDefaultB = new XmlDocument();
  20. public void Initialize()
  21. {
  22. try
  23. {
  24. string fileNameLocal = PathManager.GetCfgDir() + "\\SystemConfig.xml";
  25. if (File.Exists(fileNameLocal))
  26. {
  27. _domLocal.Load(fileNameLocal);
  28. }
  29. string fileNameDefaultA = "";
  30. string fileNameDefaultB = "";
  31. string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  32. fileNameDefaultB = PathManager.GetCfgDir() + "\\SystemConfigB.default.xml";
  33. if (!moduleString.Contains("PMB"))
  34. {
  35. fileNameDefaultB = PathManager.GetCfgDir() + "\\SystemConfigB_1PM.default.xml";
  36. }
  37. fileNameDefaultA = PathManager.GetCfgDir() + "\\SystemConfigA.default.xml";
  38. if (!moduleString.Contains("PMB"))
  39. {
  40. fileNameDefaultA = PathManager.GetCfgDir() + "\\SystemConfigA_1PM.default.xml";
  41. }
  42. if (File.Exists(fileNameDefaultA))
  43. {
  44. _domDefaultA.Load(fileNameDefaultA);
  45. }
  46. if (File.Exists(fileNameDefaultB))
  47. {
  48. _domDefaultB.Load(fileNameDefaultB);
  49. }
  50. if (!File.Exists(fileNameDefaultA) && !File.Exists(fileNameLocal))
  51. throw new ApplicationException(string.Format("did not find the system config file {0} ", fileNameLocal));
  52. }
  53. catch (Exception ex)
  54. {
  55. LOG.Write(ex);
  56. throw;
  57. }
  58. }
  59. public string GetUiLayoutXmlFile()
  60. {
  61. return GetValue("/SystemConfig/uiLayoutXmlFile");
  62. }
  63. public string GetTopviewLogoFile()
  64. {
  65. return GetValue("/SystemConfig/topViewLogoFile");
  66. }
  67. string GetValue(string path)
  68. {
  69. XmlElement node =
  70. _domLocal.SelectSingleNode(path) as XmlElement;
  71. if (node == null)
  72. {
  73. node =
  74. _domDefaultA.SelectSingleNode(path) as XmlElement;
  75. }
  76. if (node == null)
  77. return null;
  78. return node.GetAttribute("value");
  79. }
  80. //dbName, displayName, cnName, isPressureAxis
  81. // type = "A" or "B"
  82. public List<Tuple<string, string, string, bool>> GetMonitorDataList(string type)
  83. {
  84. List<Tuple<string, string, string, bool>> lstResult = new List<Tuple<string, string, string, bool>>();
  85. XmlNodeList nodeList = _domLocal.SelectNodes("/SystemConfig/DataElements/DataElement");
  86. if (nodeList == null || nodeList.Count == 0)
  87. {
  88. if (type == "A")
  89. nodeList = _domDefaultA.SelectNodes("/SystemConfig/DataElements/DataElement");
  90. else
  91. {
  92. nodeList = _domDefaultB.SelectNodes("/SystemConfig/DataElements/DataElement");
  93. }
  94. }
  95. if (nodeList != null)
  96. {
  97. foreach (XmlElement dataXmlElement in nodeList)
  98. {
  99. lstResult.Add(Tuple.Create(dataXmlElement.GetAttribute("dbName"),
  100. dataXmlElement.GetAttribute("displayName"),
  101. dataXmlElement.GetAttribute("cn"),
  102. !string.IsNullOrEmpty(dataXmlElement.GetAttribute("isPressureAxis")) && bool.Parse(dataXmlElement.GetAttribute("isPressureAxis"))));
  103. }
  104. }
  105. return lstResult;
  106. }
  107. }
  108. }