SystemConfigManager.cs 4.1 KB

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