PrewetItemManager.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Aitex.Core.Util;
  2. using MECF.Framework.Common.Equipment;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Xml;
  9. namespace MECF.Framework.Common.ToolLayout
  10. {
  11. public class PrewetItemManager : Singleton<PrewetItemManager>
  12. {
  13. #region 常量
  14. /// <summary>
  15. /// 前缀
  16. /// </summary>
  17. private const string PREFIX = "Prewet";
  18. #endregion
  19. #region 内部变量
  20. /// <summary>
  21. /// 字典
  22. /// </summary>
  23. private Dictionary<string, PrewetItem> _moduleItemDictionary = new Dictionary<string, PrewetItem>();
  24. #endregion
  25. #region 属性
  26. /// <summary>
  27. /// 已经安装模块
  28. /// </summary>
  29. public List<string> InstalledModules { get; private set; } = new List<string>();
  30. #endregion
  31. /// <summary>
  32. /// 初始化prewet
  33. /// </summary>
  34. /// <param name="prewetElement"></param>
  35. public void InitializePrewetItem(XmlElement prewetElement)
  36. {
  37. PrewetItem prewetItem = new PrewetItem();
  38. LayoutCellItemManager.Instance.InitializeLayoutCellItem(prewetItem, prewetElement);
  39. prewetItem.PrewetID = int.Parse(prewetElement.SelectSingleNode("PrewetID").InnerText);
  40. prewetItem.LinmotID = prewetElement.SelectSingleNode("LinmotID").InnerText;
  41. string key = $"{PREFIX}{prewetItem.PrewetID}";
  42. if(prewetItem.Installed)
  43. {
  44. InstalledModules.Add(key);
  45. }
  46. prewetItem.ModuleName = key;
  47. prewetItem.ModuleType = ModuleType.Prewet.ToString();
  48. _moduleItemDictionary[key] = prewetItem;
  49. CellItemManager.Instance.InitialLayoutCellItem(prewetItem);
  50. }
  51. /// <summary>
  52. /// 获取prewet项
  53. /// </summary>
  54. /// <param name="prewetId"></param>
  55. /// <returns></returns>
  56. public PrewetItem GetPrewetItem(string moduleName)
  57. {
  58. if (_moduleItemDictionary.Count == 1)
  59. {
  60. string key = _moduleItemDictionary.Keys.First();
  61. return _moduleItemDictionary[key];
  62. }
  63. else
  64. {
  65. return _moduleItemDictionary.ContainsKey(moduleName) ? _moduleItemDictionary[moduleName] : null;
  66. }
  67. }
  68. }
  69. }