From 9211ec11c112e18cd99e77f889a01110a70031ce Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 24 十一月 2025 17:47:15 +0800
Subject: [PATCH] 优化项目结构
---
HMI.ParameterManage/Model/XmlModel.cs | 172 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 117 insertions(+), 55 deletions(-)
diff --git a/HMI.ParameterManage/Model/XmlModel.cs b/HMI.ParameterManage/Model/XmlModel.cs
index a70a4be..9f0f984 100644
--- a/HMI.ParameterManage/Model/XmlModel.cs
+++ b/HMI.ParameterManage/Model/XmlModel.cs
@@ -1,6 +1,7 @@
锘縰sing HMI.Core.Entity;
+using HMI.Core.Manager;
using HMI.Core.Util;
-using HMI.ParameterManage.Entity;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
@@ -9,17 +10,8 @@
{
public class XmlModel : NotifyBase
{
- private string ProductSettingFile;
- private string ParameterSettingFolder;
-
public XmlModel(string baseFolder)
{
- ProductSettingFile = Path.Combine(baseFolder, "Product.setting");
- ParameterSettingFolder = Path.Combine(baseFolder, "Parameter");
- if (!Directory.Exists(ParameterSettingFolder))
- {
- Directory.CreateDirectory(ParameterSettingFolder);
- }
}
private ObservableCollection<ProductData> products;
@@ -61,6 +53,8 @@
}
}
+ public List<string> groups { get; private set; }
+
public bool ValidateProductName(object value, out string msg)
{
msg = null;
@@ -91,31 +85,22 @@
public void LoadProducts()
{
- ObservableCollection<ProductData> products;
- if (File.Exists(ProductSettingFile))
- {
- products = XmlHelper.DeserializeFromXml<ObservableCollection<ProductData>>(ProductSettingFile);
- }
- else
- {
- products = new ObservableCollection<ProductData>();
- }
+ ObservableCollection<ProductData> products = ProductManager.GetProducts<ObservableCollection<ProductData>>();
+ products = products ?? new ObservableCollection<ProductData>();
Products = products;
}
public void LoadParameters()
{
- ObservableCollection<ParameterData> parameters = new ObservableCollection<ParameterData>();
+ ObservableCollection<ParameterData> parameters = null;
if (SelectedProduct != null)
{
- string fileName = $"Parameter_{SelectedProduct.Name}.setting";
- string parameterSettingFile = Path.Combine(ParameterSettingFolder, fileName);
- if (File.Exists(parameterSettingFile))
- {
- parameters = XmlHelper.DeserializeFromXml<ObservableCollection<ParameterData>>(parameterSettingFile);
- }
+ 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,11 +108,11 @@
int index = Products.IndexOf(data);
if (index > -1)
{
- UpdateData(index, data);
+ UpdateProduct(index, data);
}
else
{
- InsertData(data);
+ InsertProduct(data);
}
}
@@ -144,67 +129,144 @@
}
}
- public void InsertData(ProductData data)
+ #region 浜у搧鎿嶄綔
+ /// <summary>
+ /// 鏂板浜у搧
+ /// </summary>
+ /// <param name="data"></param>
+ public void InsertProduct(ProductData data)
{
var temp = XmlHelper.DeepClone(Products);
temp.Add(data);
- XmlHelper.SerializeToXml(ProductSettingFile, temp);
+ 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);
+ }
}
- public void UpdateData(int index, ProductData data)
+ /// <summary>
+ /// 鏇存柊浜у搧
+ /// </summary>
+ /// <param name="index"></param>
+ /// <param name="data"></param>
+ public void UpdateProduct(int index, ProductData data)
{
var temp = XmlHelper.DeepClone(Products);
temp[index] = data;
- XmlHelper.SerializeToXml(ProductSettingFile, temp);
+ SaveProduct(temp);
}
- public void InsertParameter(ParameterData data)
- {
- var temp = XmlHelper.DeepClone(Parameters);
- temp.Add(data);
- string fileName = Path.Combine(ParameterSettingFolder, $"Parameter_{SelectedProduct.Name}.setting");
- XmlHelper.SerializeToXml(fileName, temp);
- }
-
- public void UpdateParameter(int index, ParameterData data)
- {
- var temp = XmlHelper.DeepClone(Parameters);
- temp[index] = data;
- string fileName = Path.Combine(ParameterSettingFolder, $"Parameter_{SelectedProduct.Name}.setting");
- XmlHelper.SerializeToXml(fileName, temp);
- }
-
+ /// <summary>
+ /// 鍒犻櫎浜у搧
+ /// </summary>
+ /// <param name="data"></param>
public void DeleteProduct(ProductData data)
{
int index = Products.IndexOf(data);
if (index > -1)
{
var temp = Products.Where(p => p != data).ToList();
- XmlHelper.SerializeToXml(ProductSettingFile, temp);
+ SaveProduct(temp);
}
}
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎浜у搧
+ /// </summary>
public void DeleteProducts()
{
var temp = Products.Where(p => !p.IsSelected).ToList();
- XmlHelper.SerializeToXml(ProductSettingFile, temp);
+ SaveProduct(temp);
}
+ /// <summary>
+ /// 鎸佷箙鍖栦骇鍝佹暟鎹�
+ /// </summary>
+ /// <param name="datas"></param>
+ private void SaveProduct(IList<ProductData> datas)
+ {
+ XmlHelper.SerializeToXml(PathHelper.ProductDataFile, datas);
+ }
+ #endregion
+
+ #region 浜у搧鍙傛暟鎿嶄綔
+ /// <summary>
+ /// 鏂板鍙傛暟
+ /// </summary>
+ /// <param name="data"></param>
+ public void InsertParameter(ParameterData data)
+ {
+ var temp = XmlHelper.DeepClone(Parameters);
+ temp.Add(data);
+ SaveParameter(temp);
+ }
+
+ /// <summary>
+ /// 鏇存柊鍙傛暟
+ /// </summary>
+ /// <param name="index"></param>
+ /// <param name="data"></param>
+ public void UpdateParameter(int index, ParameterData data)
+ {
+ var temp = XmlHelper.DeepClone(Parameters);
+ temp[index] = data;
+ SaveParameter(temp);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍙傛暟
+ /// </summary>
+ /// <param name="data"></param>
public void DeleteParameter(ParameterData data)
{
int index = Parameters.IndexOf(data);
if (index > -1)
{
var temp = Parameters.Where(p => p != data).ToList();
- string fileName = Path.Combine(ParameterSettingFolder, $"Parameter_{SelectedProduct.Name}.setting");
- XmlHelper.SerializeToXml(fileName, temp);
+ SaveParameter(temp);
+ LoggerHelper.Info("Product Manage", $"User: {UserInfo.User.Name} deleted Product parameter:{data.Name} in Product:{data.ProductName}");
}
}
+ /// <summary>
+ /// 鎵归噺鍒犻櫎鍙傛暟
+ /// </summary>
public void DeleteParameters()
{
- var temp = Parameters.Where(p => !p.IsSelected).ToList();
- string fileName = Path.Combine(ParameterSettingFolder, $"Parameter_{SelectedProduct.Name}.setting");
- XmlHelper.SerializeToXml(fileName, 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>
+ /// 鎸佷箙鍖栧弬鏁版暟鎹�
+ /// </summary>
+ /// <param name="datas"></param>
+ private void SaveParameter(IList<ParameterData> datas)
+ {
+ string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{SelectedProduct.Name}.data");
+ XmlHelper.SerializeToXml(fileName, datas);
+ }
+
+ private void SaveParameter(string product, IList<ParameterData> datas)
+ {
+ string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{product}.data");
+ XmlHelper.SerializeToXml(fileName, datas);
+ }
+ #endregion
}
}
--
Gitblit v1.9.1