using Aitex.Common.Util; using Aitex.Core.RT.Log; using Aitex.Core.Util; using MECF.Framework.Common.Persistent.Prewet; using MECF.Framework.Common.Persistent.Rinse; using MECF.Framework.Common.Persistent.SRD; using MECF.Framework.Common.ToolLayout; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MECF.Framework.Common.Persistent.Reservoirs { public class MetalPersistentManager : Singleton { #region 内部变量 private Dictionary _persistentValueDic = new Dictionary(); private Dictionary _persistentValuePathDic = new Dictionary(); #endregion /// /// 初始化 /// public void Initialize() { try { List installedModules= MetalItemManager.Instance.InstalledModules; foreach (string module in installedModules) { string foldStr = PathManager.GetCfgDir() + $"Persistent\\Metals"; if (!Directory.Exists(foldStr)) { Directory.CreateDirectory(foldStr); } string str = $"{foldStr}\\{module}Persistent.xml"; _persistentValuePathDic[module] = str; if (File.Exists(str)) { MetalPersistentValue metalPersistentValue = CustomXmlSerializer.Deserialize(new FileInfo(str)); if (metalPersistentValue != null) { _persistentValueDic[module] = metalPersistentValue; } } else { MetalPersistentValue persistentValue = new MetalPersistentValue(); persistentValue.Name = module; _persistentValueDic[module] = persistentValue; UpdatePersistentValue(module); } } } catch (Exception ex) { LOG.WriteLog(eEvent.ERR_METAL, "System", "Load MetalsPersistent xml exception"); } } /// /// 获取Metal Persistent数值 /// /// public MetalPersistentValue GetMetalPersistentValue(string module) { if( _persistentValueDic.ContainsKey(module)) { return _persistentValueDic[module]; } else { return null; } } /// /// 更新PersistentValue /// /// public void UpdatePersistentValue(string module) { if (_persistentValueDic.ContainsKey(module)) { try { CustomXmlSerializer.Serialize(_persistentValueDic[module], _persistentValuePathDic[module]); } catch (Exception ex) { LOG.WriteLog(eEvent.ERR_METAL, module, "Update MetalsPersistent xml file excepetion"); } } else { LOG.WriteLog(eEvent.ERR_METAL, module, "Update MetalsPersistent xml file excepetion"); } } } }