using Aitex.Core.Util;
using MECF.Framework.Common.Equipment;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace MECF.Framework.Common.ToolLayout
{
    public class PowerSupplierItemManager : Singleton<PowerSupplierItemManager>
    {
        #region 常量
        /// <summary>
        /// 前缀
        /// </summary>
        private const string PREFIX = "Power";
        #endregion
        #region 内部变量
        /// <summary>
        /// 字典 
        /// </summary>
        private Dictionary<string, PowerSupplierItem> _moduleItemDictionary = new Dictionary<string, PowerSupplierItem>();
        #endregion

        #region 属性
        /// <summary>
        /// 已经安装模块
        /// </summary>
        public List<string> InstalledModules { get; private set; } = new List<string>();
        #endregion

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="xmlElement"></param>
        public void InitializeItem(XmlElement xmlElement)
        {
            PowerSupplierItem rpItem = new PowerSupplierItem();
            rpItem.Installed = bool.Parse(xmlElement.SelectSingleNode("Installed").InnerText);
            rpItem.PowerSupplierID = int.Parse(xmlElement.SelectSingleNode("PowerSupplyID").InnerText);
            rpItem.SubType = xmlElement.SelectSingleNode("SubType").InnerText;
            rpItem.Count = int.Parse(xmlElement.SelectSingleNode("Count").InnerText);
            string key = $"{PREFIX}{rpItem.PowerSupplierID}";
            if (rpItem.Installed && !InstalledModules.Contains(key))
            {
                InstalledModules.Add(key);
            }
            _moduleItemDictionary[key] = rpItem;
        }
        /// <summary>
        /// 获取Power Supplier项
        /// </summary>
        /// <returns></returns>
        public PowerSupplierItem GetPowerSupplierItem(string moduleName)
        {
            return _moduleItemDictionary.ContainsKey(moduleName) ? _moduleItemDictionary[moduleName]:null;
        }
    }
}