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 ResistivityProbeItemManager : Singleton<ResistivityProbeItemManager>
    {
        #region 常量
        /// <summary>
        /// 前缀
        /// </summary>
        private const string PREFIX = "RP";
        #endregion
        #region 内部变量
        /// <summary>
        /// 字典 
        /// </summary>
        private Dictionary<string, ResistivityProbeItem> _moduleItemDictionary = new Dictionary<string, ResistivityProbeItem>();
        #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)
        {
            ResistivityProbeItem rpItem = new ResistivityProbeItem();
            rpItem.Installed = bool.Parse(xmlElement.SelectSingleNode("Installed").InnerText);
            rpItem.ResistivityProbeID = int.Parse(xmlElement.SelectSingleNode("ResistivityProbeID").InnerText);
            rpItem.SubType = xmlElement.SelectSingleNode("SubType").InnerText;
            rpItem.Count = int.Parse(xmlElement.SelectSingleNode("Count").InnerText);
            string key = $"{PREFIX}{rpItem.ResistivityProbeID}";
            if (rpItem.Installed && !InstalledModules.Contains(key))
            {
                InstalledModules.Add(key);
            }
            _moduleItemDictionary[key] = rpItem;
        }
        /// <summary>
        /// 获取ResistivityProbe项
        /// </summary>
        /// <returns></returns>
        public ResistivityProbeItem GetResistivityProbeItem(string moduleName)
        {
            return _moduleItemDictionary.ContainsKey(moduleName) ? _moduleItemDictionary[moduleName]:null;
        }
    }
}