alielie
2026-04-23 ef52fd6fd07508883dce4eb002acda59f0169e59
HMI.ParameterManage/Model/XmlModel.cs
@@ -53,6 +53,8 @@
            }
        }
        public List<string> groups { get; private set; }
        public bool ValidateProductName(object value, out string msg)
        {
            msg = null;
@@ -94,10 +96,10 @@
            if (SelectedProduct != null)
            {
                parameters = ProductManager.GetParametersByProductName<ObservableCollection<ParameterData>>(SelectedProduct.Name);
            }
            parameters = parameters ?? new ObservableCollection<ParameterData>();
            Parameters = parameters;
            groups = Parameters.Where(p => !string.IsNullOrEmpty(p.PGroup)).Select(p => p.PGroup).Distinct().ToList();
        }
        public void SaveOrUpdateData(ProductData data)
@@ -136,6 +138,16 @@
            var temp = XmlHelper.DeepClone(Products);
            temp.Add(data);
            SaveProduct(temp);
            if (!string.IsNullOrEmpty(data.ParentId))
            {
                var parameters =
                    ProductManager.GetParametersByProductName<List<ParameterData>>(data.ParentId);
                foreach (var p in parameters)
                {
                    p.ProductName = data.Name;
                }
                SaveParameter(data.Name, parameters);
            }
        }
        /// <summary>
@@ -179,7 +191,7 @@
        /// <param name="datas"></param>
        private void SaveProduct(IList<ProductData> datas)
        {
            XmlHelper.SerializeToXml(PathHelper.ProductDataFile, datas);
            XmlHelper.SerializeToXml(ProductManager.GetDataFilePath(), datas);
        }
        #endregion
@@ -218,6 +230,7 @@
            {
                var temp = Parameters.Where(p => p != data).ToList();
                SaveParameter(temp);
                LoggerHelper.Info("Product Manage", $"User: {UserInfo.User.Name} deleted Product parameter:{data.Name} in Product:{data.ProductName}");
            }
        }
@@ -226,8 +239,16 @@
        /// </summary>
        public void DeleteParameters()
        {
            var temp = Parameters.Where(p => !p.IsSelected).ToList();
            SaveParameter(temp);
            var needDelet = Parameters.Where(p => p.IsSelected).ToList();
            if (needDelet.Count > 0)
            {
                var first = needDelet[0];
                var names = needDelet.Select(e => e.Name).ToList();
                var temp = Parameters.Where(p => !p.IsSelected).ToList();
                SaveParameter(temp);
                LoggerHelper.Info("Product Manage", $"User: {UserInfo.User.Name} deleted Product parameters:{string.Join(",", names)} in Product:{first.ProductName}");
            }
        }
        /// <summary>
@@ -236,7 +257,13 @@
        /// <param name="datas"></param>
        private void SaveParameter(IList<ParameterData> datas)
        {
            string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{SelectedProduct.Name}.data");
            string fileName = ProductManager.GetParamFolderByProductName(SelectedProduct.Name);
            XmlHelper.SerializeToXml(fileName, datas);
        }
        private void SaveParameter(string product, IList<ParameterData> datas)
        {
            string fileName = ProductManager.GetParamFolderByProductName(product);
            XmlHelper.SerializeToXml(fileName, datas);
        }
        #endregion