using HMI.Core.Entity; using HMI.Core.Setting; using HMI.Core.Util; using System.Collections.Generic; using System.IO; using System.Linq; namespace HMI.Core.Manager { /// /// TODO 优化数据源,需要支持sqlite和xml /// public class ProductManager { public static string GetFolder() { if (ParamSetting.ShareConfig != null) { return Path.Combine(ParamSetting.ShareConfig, "Product"); } return Path.Combine(PathHelper.ConfigFolder, "Product"); } public static string GetDataFilePath() { return Path.Combine(GetFolder(), "Product.data"); } public static string GetParamFolderByProductName(string productName) { return Path.Combine(GetFolder(), "Parameter", $"Parameter_{productName}.data"); } /// /// 获取保存的产品 /// /// public static T GetProducts() where T : IList { string path = GetDataFilePath(); if (!File.Exists(path)) return default(T); T datas = XmlHelper.DeserializeFromXml(path); return datas; } /// /// 获取保存的产品 /// /// public static T GetParametersByProductName(string productName) where T : IList { string path = GetParamFolderByProductName(productName); if (!File.Exists(path)) return default(T); T datas = XmlHelper.DeserializeFromXml(path); return datas; } public static List GetProducts() { List datas = GetProducts>(); return datas ?? new List(); } /// /// 根据产品名称获取产品参数 /// /// /// public static List GetParametersByProductName(string productName) { List datas = GetParametersByProductName>(productName); return datas ?? new List(); } public static ParameterData GetParameterByProductAndName(string product, string name) { List datas = GetParametersByProductName>(product); return datas?.FirstOrDefault(e => e.Name == name); } } }