From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
HMI.ParameterManage/Model/XmlModel.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 48 insertions(+), 5 deletions(-)
diff --git a/HMI.ParameterManage/Model/XmlModel.cs b/HMI.ParameterManage/Model/XmlModel.cs
index cf541bd..c04e4ad 100644
--- a/HMI.ParameterManage/Model/XmlModel.cs
+++ b/HMI.ParameterManage/Model/XmlModel.cs
@@ -1,10 +1,12 @@
锘縰sing HMI.Core.Entity;
using HMI.Core.Manager;
using HMI.Core.Util;
+using HMI.LogUtil;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
+using System.Text.RegularExpressions;
namespace HMI.ParameterManage.Model
{
@@ -53,6 +55,8 @@
}
}
+ public List<string> groups { get; private set; }
+
public bool ValidateProductName(object value, out string msg)
{
msg = null;
@@ -69,8 +73,16 @@
public bool ValidateParameterName(object value, out string msg)
{
+ string pattern = @"^[\p{L}_][\p{L}\p{N}_]*$";
msg = null;
string name = value.ToString();
+
+ if (!Regex.IsMatch(name, pattern))
+ {
+ msg = "鍙傛暟鍚嶄笉鑳戒互鏁板瓧寮�澶�";
+ return false;
+ }
+
if (Products == null) return true;
var temp = Parameters.FirstOrDefault(p => p.Name == name);
if (temp != null && temp != SelectedParameter)
@@ -94,10 +106,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)
@@ -123,6 +135,7 @@
else
{
InsertParameter(data);
+ LogHelper.Info("HMI", $"[{data.ProductName}] Add New Parameter {data.Name}. Value: {data.Value}", out _);
}
}
@@ -136,6 +149,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 +202,7 @@
/// <param name="datas"></param>
private void SaveProduct(IList<ProductData> datas)
{
- XmlHelper.SerializeToXml(PathHelper.ProductDataFile, datas);
+ XmlHelper.SerializeToXml(ProductManager.GetDataFilePath(), datas);
}
#endregion
@@ -203,8 +226,13 @@
public void UpdateParameter(int index, ParameterData data)
{
var temp = XmlHelper.DeepClone(Parameters);
+ var old = temp[index];
temp[index] = data;
SaveParameter(temp);
+ if (old.Value != data.Value)
+ {
+ LogHelper.Info("HMI", $"Update Parameter {data.Name}. Value: {old.Value} => {data.Value}", out _);
+ }
}
/// <summary>
@@ -218,6 +246,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 +255,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 +273,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
--
Gitblit v1.9.1