diff --git a/DMS.Application/DTOs/CreateDeviceWithDetailsDto.cs b/DMS.Application/DTOs/CreateDeviceWithDetailsDto.cs
index 8a66dc3..e7fd4e6 100644
--- a/DMS.Application/DTOs/CreateDeviceWithDetailsDto.cs
+++ b/DMS.Application/DTOs/CreateDeviceWithDetailsDto.cs
@@ -1,3 +1,5 @@
+using DMS.Core.Models;
+
namespace DMS.Application.DTOs;
///
@@ -5,8 +7,7 @@ namespace DMS.Application.DTOs;
///
public class CreateDeviceWithDetailsDto
{
- public DeviceDto Device { get; set; }
- public VariableTableDto VariableTable { get; set; }
+ public Device Device { get; set; } public VariableTable VariableTable { get; set; }
public MenuBeanDto DeviceMenu { get; set; } // 如果需要包含菜单信息
public MenuBeanDto VariableTableMenu { get; set; } // 如果需要包含菜单信息
diff --git a/DMS.Application/DTOs/CreateVariableTableWithMenuDto.cs b/DMS.Application/DTOs/CreateVariableTableWithMenuDto.cs
index 78bc00c..b682606 100644
--- a/DMS.Application/DTOs/CreateVariableTableWithMenuDto.cs
+++ b/DMS.Application/DTOs/CreateVariableTableWithMenuDto.cs
@@ -5,7 +5,7 @@ namespace DMS.Application.DTOs
{
public class CreateVariableTableWithMenuDto
{
- public VariableTableDto VariableTable { get; set; }
+ public VariableTable VariableTable { get; set; }
public int DeviceId { get; set; }
public MenuBeanDto Menu { get; set; }
}
diff --git a/DMS.Application/DTOs/DeviceDto.cs b/DMS.Application/DTOs/DeviceDto.cs
deleted file mode 100644
index d2b3961..0000000
--- a/DMS.Application/DTOs/DeviceDto.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using DMS.Core.Enums;
-
-namespace DMS.Application.DTOs;
-
-///
-/// 用于在UI上显示设备基本信息的DTO。
-///
-public class DeviceDto
-{
- ///
- /// 设备唯一标识符
- ///
- public int Id { get; set; }
-
- ///
- /// 设备名称
- ///
- public string Name { get; set; }
-
- ///
- /// 设备描述信息
- ///
- public string Description { get; set; }
-
- ///
- /// 通信协议类型
- ///
- public ProtocolType Protocol { get; set; }
-
- ///
- /// 设备IP地址
- ///
- public string IpAddress { get; set; }
-
- ///
- /// 设备端口号
- ///
- public int Port { get; set; }
-
- ///
- /// PLC机架号(用于PLC连接)
- ///
- public int Rack { get; set; }
-
- ///
- /// PLC插槽号(用于PLC连接)
- ///
- public int Slot { get; set; }
-
- ///
- /// CPU类型
- ///
- public CpuType CpuType { get; set; }
-
- ///
- /// 设备类型
- ///
- public DeviceType DeviceType { get; set; }
-
- ///
- /// OPC UA服务器URL
- ///
- public string OpcUaServerUrl { get; set; }
-
- ///
- /// 设备是否处于激活状态
- ///
- public bool IsActive { get; set; }
-
- ///
- /// 设备是否正在运行
- ///
- public bool IsRunning { get; set; }
-
- ///
- /// 设备当前状态("在线", "离线", "连接中...")
- ///
- public string Status { get; set; } // "在线", "离线", "连接中..."
-
- ///
- /// 设备关联的变量表集合
- ///
- public List VariableTables { get; set; }=new List();
-}
\ No newline at end of file
diff --git a/DMS.Application/DTOs/VariableDto.cs b/DMS.Application/DTOs/VariableDto.cs
deleted file mode 100644
index 1b4de20..0000000
--- a/DMS.Application/DTOs/VariableDto.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using DMS.Core.Enums;
-using DMS.Core.Models;
-using System;
-using System.Collections.Generic;
-
-namespace DMS.Application.DTOs;
-
-///
-/// 用于在UI上显示变量基本信息的DTO。
-///
-public class VariableDto
-{
- public int Id { get; set; }
- public string Name { get; set; }
- public string S7Address { get; set; }
- public string DataValue { get; set; }
- public double NumericValue { get; set; }
- public string DisplayValue { get; set; }
- public VariableTableDto? VariableTable { get; set; }
- public List? MqttAliases { get; set; } = new List();
- public SignalType SignalType { get; set; }
- public int PollingInterval { get; set; }
- public bool IsActive { get; set; }
- public int VariableTableId { get; set; }
- public string OpcUaNodeId { get; set; }
- public bool IsHistoryEnabled { get; set; }
- public double HistoryDeadband { get; set; }
- public bool IsAlarmEnabled { get; set; }
- public double AlarmMinValue { get; set; }
- public double AlarmMaxValue { get; set; }
- public double AlarmDeadband { get; set; }
- public ProtocolType Protocol { get; set; }
- public DataType DataType { get; set; }
- public string ConversionFormula { get; set; }
- public DateTime CreatedAt { get; set; }
- public DateTime UpdatedAt { get; set; }
- public string UpdatedBy { get; set; }
- public bool IsModified { get; set; }
- public string Description { get; set; }
- public OpcUaUpdateType OpcUaUpdateType { get; set; }
-}
\ No newline at end of file
diff --git a/DMS.Application/DTOs/VariableTableDto.cs b/DMS.Application/DTOs/VariableTableDto.cs
deleted file mode 100644
index f10430a..0000000
--- a/DMS.Application/DTOs/VariableTableDto.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using DMS.Core.Enums;
-
-namespace DMS.Application.DTOs;
-
-///
-/// 用于在UI上显示变量表基本信息的DTO。
-///
-public class VariableTableDto
-{
- public int Id { get; set; }
- public string Name { get; set; }
- public string Description { get; set; }
- public bool IsActive { get; set; }
- public int DeviceId { get; set; }
- public DeviceDto Device { get; set; }
- public ProtocolType Protocol { get; set; }
- public List Variables { get; set; } = new();
-}
\ No newline at end of file
diff --git a/DMS.Application/Events/BatchImportVariablesEventArgs.cs b/DMS.Application/Events/BatchImportVariablesEventArgs.cs
index 21792df..6669ac0 100644
--- a/DMS.Application/Events/BatchImportVariablesEventArgs.cs
+++ b/DMS.Application/Events/BatchImportVariablesEventArgs.cs
@@ -1,5 +1,6 @@
using DMS.Application.DTOs;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Events
{
@@ -11,7 +12,7 @@ namespace DMS.Application.Events
///
/// 导入的变量列表
///
- public List Variables { get; }
+ public List Variables { get; }
///
/// 导入的变量数量
@@ -27,9 +28,9 @@ namespace DMS.Application.Events
/// 构造函数
///
/// 导入的变量列表
- public BatchImportVariablesEventArgs(List variables)
+ public BatchImportVariablesEventArgs(List variables)
{
- Variables = variables ?? new List();
+ Variables = variables ?? new List();
Count = Variables.Count;
ChangeTime = DateTime.Now;
}
diff --git a/DMS.Application/Events/DeviceChangedEventArgs.cs b/DMS.Application/Events/DeviceChangedEventArgs.cs
index d76c74f..1554286 100644
--- a/DMS.Application/Events/DeviceChangedEventArgs.cs
+++ b/DMS.Application/Events/DeviceChangedEventArgs.cs
@@ -1,5 +1,5 @@
-using DMS.Application.DTOs;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Events
{
@@ -16,7 +16,7 @@ namespace DMS.Application.Events
///
/// 设备DTO
///
- public DeviceDto Device { get; }
+ public Device Device { get; }
///
/// 变更时间
@@ -28,7 +28,7 @@ namespace DMS.Application.Events
///
/// 变更类型
/// 设备DTO
- public DeviceChangedEventArgs(DataChangeType changeType, DeviceDto device)
+ public DeviceChangedEventArgs(DataChangeType changeType, Device device)
{
ChangeType = changeType;
Device = device;
diff --git a/DMS.Application/Events/VariableChangedEventArgs.cs b/DMS.Application/Events/VariableChangedEventArgs.cs
index a9c47c0..39918af 100644
--- a/DMS.Application/Events/VariableChangedEventArgs.cs
+++ b/DMS.Application/Events/VariableChangedEventArgs.cs
@@ -1,5 +1,6 @@
using DMS.Application.DTOs;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Events
{
@@ -16,7 +17,7 @@ namespace DMS.Application.Events
///
/// 变量DTO
///
- public VariableDto Variable { get; }
+ public Variable Variable { get; }
///
/// 发生变化的属性类型
@@ -29,7 +30,7 @@ namespace DMS.Application.Events
/// 变更类型
/// 变量DTO
/// 发生变化的属性类型
- public VariableChangedEventArgs(ActionChangeType changeType, VariableDto variable, VariablePropertyType propertyType = VariablePropertyType.All)
+ public VariableChangedEventArgs(ActionChangeType changeType, Variable variable, VariablePropertyType propertyType = VariablePropertyType.All)
{
ChangeType = changeType;
Variable = variable;
diff --git a/DMS.Application/Events/VariableTableChangedEventArgs.cs b/DMS.Application/Events/VariableTableChangedEventArgs.cs
index fd6d2a9..b784ba1 100644
--- a/DMS.Application/Events/VariableTableChangedEventArgs.cs
+++ b/DMS.Application/Events/VariableTableChangedEventArgs.cs
@@ -1,5 +1,5 @@
-using DMS.Application.DTOs;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Events
{
@@ -16,7 +16,7 @@ namespace DMS.Application.Events
///
/// 变量表DTO
///
- public VariableTableDto VariableTable { get; }
+ public VariableTable VariableTable { get; }
///
@@ -30,7 +30,7 @@ namespace DMS.Application.Events
/// 变更类型
/// 变量表DTO
/// 关联的设备DTO
- public VariableTableChangedEventArgs(DataChangeType changeType, VariableTableDto variableTable)
+ public VariableTableChangedEventArgs(DataChangeType changeType, VariableTable variableTable)
{
ChangeType = changeType;
VariableTable = variableTable;
diff --git a/DMS.Application/Events/VariableValueChangedEventArgs.cs b/DMS.Application/Events/VariableValueChangedEventArgs.cs
index 299c42c..d6a7634 100644
--- a/DMS.Application/Events/VariableValueChangedEventArgs.cs
+++ b/DMS.Application/Events/VariableValueChangedEventArgs.cs
@@ -1,4 +1,5 @@
-using DMS.Application.DTOs;
+
+using DMS.Core.Models;
namespace DMS.Application.Events
{
@@ -10,7 +11,7 @@ namespace DMS.Application.Events
///
/// 变量DTO对象
///
- public VariableDto Variable { get; set; }
+ public Variable Variable { get; set; }
///
/// 旧值
@@ -20,7 +21,7 @@ namespace DMS.Application.Events
///
/// 构造函数
///
- public VariableValueChangedEventArgs(VariableDto variable, string? oldValue)
+ public VariableValueChangedEventArgs(Variable variable, string? oldValue)
{
Variable = variable;
OldValue = oldValue;
diff --git a/DMS.Application/Interfaces/Database/IDeviceAppService.cs b/DMS.Application/Interfaces/Database/IDeviceAppService.cs
index cee2baa..1766220 100644
--- a/DMS.Application/Interfaces/Database/IDeviceAppService.cs
+++ b/DMS.Application/Interfaces/Database/IDeviceAppService.cs
@@ -12,13 +12,11 @@ public interface IDeviceAppService
///
/// 异步根据ID获取设备DTO。
///
- Task GetDeviceByIdAsync(int id);
-
+ Task GetDeviceByIdAsync(int id);
///
/// 异步获取所有设备DTO列表。
///
- Task> GetAllDevicesAsync();
-
+ Task> GetAllDevicesAsync();
///
/// 异步创建一个新设备及其关联的变量表和菜单(事务性操作)。
///
@@ -29,8 +27,7 @@ public interface IDeviceAppService
///
/// 异步更新一个已存在的设备。
///
- Task UpdateDeviceAsync(DeviceDto deviceDto);
-
+ Task UpdateDeviceAsync(Device device);
///
/// 异步删除一个设备。
///
@@ -49,5 +46,4 @@ public interface IDeviceAppService
///
/// 异步获取指定协议类型的设备列表。
///
- Task> GetDevicesByProtocolAsync(ProtocolType protocol);
-}
\ No newline at end of file
+ Task> GetDevicesByProtocolAsync(ProtocolType protocol);}
\ No newline at end of file
diff --git a/DMS.Application/Interfaces/Database/IVariableAppService.cs b/DMS.Application/Interfaces/Database/IVariableAppService.cs
index 6a35c0f..96e23ac 100644
--- a/DMS.Application/Interfaces/Database/IVariableAppService.cs
+++ b/DMS.Application/Interfaces/Database/IVariableAppService.cs
@@ -1,4 +1,5 @@
using DMS.Application.DTOs;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces.Database;
@@ -10,37 +11,37 @@ public interface IVariableAppService
///
/// 异步根据ID获取变量DTO。
///
- Task GetVariableByIdAsync(int id);
+ Task GetVariableByIdAsync(int id);
///
/// 异步根据OPC UA NodeId获取变量DTO。
///
- Task GetVariableByOpcUaNodeIdAsync(string opcUaNodeId);
+ Task GetVariableByOpcUaNodeIdAsync(string opcUaNodeId);
///
/// 异步根据OPC UA NodeId列表获取变量DTO列表。
///
- Task> GetVariableByOpcUaNodeIdsAsync(List opcUaNodeIds);
+ Task> GetVariableByOpcUaNodeIdsAsync(List opcUaNodeIds);
///
/// 异步获取所有变量DTO列表。
///
- Task> GetAllVariablesAsync();
+ Task> GetAllVariablesAsync();
///
/// 异步创建一个新变量。
///
- Task CreateVariableAsync(VariableDto variableDto);
+ Task CreateVariableAsync(Variable variable);
///
/// 异步更新一个已存在的变量。
///
- Task UpdateVariableAsync(VariableDto variableDto);
+ Task UpdateVariableAsync(Variable variable);
///
/// 异步更新一个已存在的变量。
///
- Task UpdateVariablesAsync(List variableDtos);
+ Task UpdateVariablesAsync(List variables);
///
/// 异步删除一个变量。
@@ -55,19 +56,19 @@ public interface IVariableAppService
///
/// 异步批量导入变量。
///
- Task> BatchImportVariablesAsync(List variables);
+ Task> BatchImportVariablesAsync(List variables);
///
/// 检测一组变量是否已存在。
///
/// 要检查的变量列表。
/// 返回输入列表中已存在的变量。
- Task> FindExistingVariablesAsync(IEnumerable variablesToCheck);
+ Task> FindExistingVariablesAsync(IEnumerable variablesToCheck);
///
/// 检测单个变量是否已存在。
///
/// 要检查的变量。
/// 如果变量已存在则返回该变量,否则返回null。
- Task FindExistingVariableAsync(VariableDto variableToCheck);
+ Task FindExistingVariableAsync(Variable variableToCheck);
}
\ No newline at end of file
diff --git a/DMS.Application/Interfaces/Database/IVariableTableAppService.cs b/DMS.Application/Interfaces/Database/IVariableTableAppService.cs
index 2087c0a..b643d7d 100644
--- a/DMS.Application/Interfaces/Database/IVariableTableAppService.cs
+++ b/DMS.Application/Interfaces/Database/IVariableTableAppService.cs
@@ -1,13 +1,15 @@
+
using DMS.Application.DTOs;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces.Database
{
public interface IVariableTableAppService
{
- Task GetVariableTableByIdAsync(int id);
- Task> GetAllVariableTablesAsync();
+ Task GetVariableTableByIdAsync(int id);
+ Task> GetAllVariableTablesAsync();
Task CreateVariableTableAsync(CreateVariableTableWithMenuDto createDto);
- Task UpdateVariableTableAsync(VariableTableDto variableTableDto);
+ Task UpdateVariableTableAsync(VariableTable variableTableDto);
Task DeleteVariableTableAsync(int id);
}
}
diff --git a/DMS.Application/Interfaces/IAlarmService.cs b/DMS.Application/Interfaces/IAlarmService.cs
index ce21d17..acad0a5 100644
--- a/DMS.Application/Interfaces/IAlarmService.cs
+++ b/DMS.Application/Interfaces/IAlarmService.cs
@@ -1,5 +1,6 @@
using DMS.Application.DTOs;
using DMS.Core.Events;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces
{
@@ -10,7 +11,7 @@ namespace DMS.Application.Interfaces
///
/// 变量DTO
/// 是否触发报警
- bool CheckAlarm(VariableDto variable);
+ bool CheckAlarm(Variable variable);
///
/// 警报事件
diff --git a/DMS.Application/Interfaces/IAppDataStorageService.cs b/DMS.Application/Interfaces/IAppDataStorageService.cs
index 535819c..4d23d0a 100644
--- a/DMS.Application/Interfaces/IAppDataStorageService.cs
+++ b/DMS.Application/Interfaces/IAppDataStorageService.cs
@@ -9,17 +9,16 @@ public interface IAppDataStorageService
///
/// 安全字典,用于存储所有设备数据
///
- ConcurrentDictionary Devices { get; }
-
+ ConcurrentDictionary Devices { get; }
///
/// 安全字典,用于存储所有变量表数据
///
- ConcurrentDictionary VariableTables { get; }
+ ConcurrentDictionary VariableTables { get; }
///
/// 安全字典,用于存储所有变量数据
///
- ConcurrentDictionary Variables { get; }
+ ConcurrentDictionary Variables { get; }
///
/// 安全字典,用于存储所有菜单数据
diff --git a/DMS.Application/Interfaces/Management/IDeviceManagementService.cs b/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
index 54db4a5..2d0cc5f 100644
--- a/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
+++ b/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
@@ -1,5 +1,6 @@
using DMS.Application.DTOs;
using DMS.Application.Events;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces.Management;
@@ -10,13 +11,11 @@ public interface IDeviceManagementService
///
/// 异步根据ID获取设备DTO。
///
- Task GetDeviceByIdAsync(int id);
-
+ Task GetDeviceByIdAsync(int id);
///
/// 异步获取所有设备DTO列表。
///
- Task> GetAllDevicesAsync();
-
+ Task> GetAllDevicesAsync();
///
/// 异步创建一个新设备及其关联的变量表和菜单(事务性操作)。
///
@@ -25,8 +24,7 @@ public interface IDeviceManagementService
///
/// 异步更新一个已存在的设备。
///
- Task UpdateDeviceAsync(DeviceDto deviceDto);
-
+ Task UpdateDeviceAsync(Device device);
///
/// 异步删除一个设备。
///
diff --git a/DMS.Application/Interfaces/Management/IVariableManagementService.cs b/DMS.Application/Interfaces/Management/IVariableManagementService.cs
index 353e4f1..a9a3ea9 100644
--- a/DMS.Application/Interfaces/Management/IVariableManagementService.cs
+++ b/DMS.Application/Interfaces/Management/IVariableManagementService.cs
@@ -1,5 +1,6 @@
using System.Collections.Concurrent;
using DMS.Application.DTOs;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces.Management;
@@ -8,27 +9,27 @@ public interface IVariableManagementService
///
/// 异步根据ID获取变量DTO。
///
- Task GetVariableByIdAsync(int id);
+ Task GetVariableByIdAsync(int id);
///
/// 异步获取所有变量DTO列表。
///
- Task> GetAllVariablesAsync();
+ Task> GetAllVariablesAsync();
///
/// 异步创建一个新变量。
///
- Task CreateVariableAsync(VariableDto variableDto);
+ Task CreateVariableAsync(Variable variable);
///
/// 异步更新一个已存在的变量。
///
- Task UpdateVariableAsync(VariableDto variableDto);
+ Task UpdateVariableAsync(Variable variable);
///
/// 异步批量更新变量。
///
- Task UpdateVariablesAsync(List variableDtos);
+ Task UpdateVariablesAsync(List variables);
///
/// 异步删除一个变量。
@@ -43,10 +44,10 @@ public interface IVariableManagementService
///
/// 异步批量导入变量。
///
- Task> BatchImportVariablesAsync(List variables);
+ Task> BatchImportVariablesAsync(List variables);
///
/// 查找已存在的变量。
///
- Task> FindExistingVariablesAsync(IEnumerable variablesToCheck);
+ Task> FindExistingVariablesAsync(IEnumerable variablesToCheck);
}
\ No newline at end of file
diff --git a/DMS.Application/Interfaces/Management/IVariableTableManagementService.cs b/DMS.Application/Interfaces/Management/IVariableTableManagementService.cs
index 81f0804..d7d532a 100644
--- a/DMS.Application/Interfaces/Management/IVariableTableManagementService.cs
+++ b/DMS.Application/Interfaces/Management/IVariableTableManagementService.cs
@@ -1,5 +1,6 @@
using DMS.Application.DTOs;
using DMS.Application.Events;
+using DMS.Core.Models;
namespace DMS.Application.Interfaces.Management;
@@ -8,12 +9,12 @@ public interface IVariableTableManagementService
///
/// 异步根据ID获取变量表DTO。
///
- Task GetVariableTableByIdAsync(int id);
+ Task GetVariableTableByIdAsync(int id);
///
/// 异步获取所有变量表DTO列表。
///
- Task> GetAllVariableTablesAsync();
+ Task> GetAllVariableTablesAsync();
///
/// 异步创建一个新变量表及其关联菜单(事务性操作)。
@@ -23,7 +24,7 @@ public interface IVariableTableManagementService
///
/// 异步更新一个已存在的变量表。
///
- Task UpdateVariableTableAsync(VariableTableDto variableTableDto);
+ Task UpdateVariableTableAsync(VariableTable variableTableDto);
///
/// 异步删除一个变量表。
diff --git a/DMS.Application/Models/VariableContext.cs b/DMS.Application/Models/VariableContext.cs
index 170d8c9..aed1673 100644
--- a/DMS.Application/Models/VariableContext.cs
+++ b/DMS.Application/Models/VariableContext.cs
@@ -1,16 +1,15 @@
-using DMS.Application.DTOs;
using DMS.Core.Models;
namespace DMS.Application.Models
{
public class VariableContext
{
- public VariableDto Data { get; set; }
+ public Variable Data { get; set; }
public string NewValue { get; set; }
public bool IsHandled { get; set; }
- public VariableContext(VariableDto data, string newValue="")
+ public VariableContext(Variable data, string newValue="")
{
Data = data;
IsHandled = false; // 默认未处理
diff --git a/DMS.Application/Profiles/MappingProfile.cs b/DMS.Application/Profiles/MappingProfile.cs
index b8c983d..ba17189 100644
--- a/DMS.Application/Profiles/MappingProfile.cs
+++ b/DMS.Application/Profiles/MappingProfile.cs
@@ -12,21 +12,9 @@ public class MappingProfile : Profile
{
public MappingProfile()
{
- CreateMap()
- .ReverseMap();
-
- // VariableTable 映射
- CreateMap().ReverseMap();
// Variable 映射
- CreateMap()
- .ReverseMap();
- CreateMap()
- .ReverseMap();
- CreateMap()
- .ReverseMap();
-
// VariableHistory 映射
diff --git a/DMS.Application/Services/AlarmService.cs b/DMS.Application/Services/AlarmService.cs
index dd9e5ae..eab8d2e 100644
--- a/DMS.Application/Services/AlarmService.cs
+++ b/DMS.Application/Services/AlarmService.cs
@@ -2,6 +2,7 @@ using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Core.Enums;
using DMS.Core.Events;
+using DMS.Core.Models;
using Microsoft.Extensions.Logging;
namespace DMS.Application.Services
@@ -17,7 +18,7 @@ namespace DMS.Application.Services
public event EventHandler OnAlarmTriggered;
- public bool CheckAlarm(VariableDto variable)
+ public bool CheckAlarm(Variable variable)
{
if (!variable.IsAlarmEnabled)
{
@@ -69,7 +70,7 @@ namespace DMS.Application.Services
// 如果需要在 AlarmService 中处理死区报警,我们需要一种方式来获取上一次的值
- // 这可能需要修改 VariableDto 或通过其他方式传递上一次的值
+ // 这可能需要修改 Variable 或通过其他方式传递上一次的值
// 为了保持设计的清晰性,我们暂时不在这里实现死区报警
// 死区报警可以在 VariableItemViewModel 中实现,当检测到值变化超过死区时触发一个事件
diff --git a/DMS.Application/Services/AppDataStorageService.cs b/DMS.Application/Services/AppDataStorageService.cs
index 4c7a64f..241e0b8 100644
--- a/DMS.Application/Services/AppDataStorageService.cs
+++ b/DMS.Application/Services/AppDataStorageService.cs
@@ -10,17 +10,16 @@ public class AppDataStorageService : IAppDataStorageService
///
/// 安全字典,用于存储所有设备数据
///
- public ConcurrentDictionary Devices { get; } = new();
-
+ public ConcurrentDictionary Devices { get; } = new();
///
/// 安全字典,用于存储所有变量表数据
///
- public ConcurrentDictionary VariableTables { get; } = new();
+ public ConcurrentDictionary VariableTables { get; } = new();
///
/// 安全字典,用于存储所有变量数据
///
- public ConcurrentDictionary Variables { get; } = new();
+ public ConcurrentDictionary Variables { get; } = new();
///
/// 安全字典,用于存储所有菜单数据
diff --git a/DMS.Application/Services/DataLoaderService.cs b/DMS.Application/Services/DataLoaderService.cs
index 3839249..53da267 100644
--- a/DMS.Application/Services/DataLoaderService.cs
+++ b/DMS.Application/Services/DataLoaderService.cs
@@ -131,7 +131,7 @@ public class DataLoaderService : IDataLoaderService
{
_appDataStorageService.Devices.Clear();
var devices = await _repositoryManager.Devices.GetAllAsync();
- var devicesDtos = _mapper.Map>(devices);
+ var devicesDtos = _mapper.Map>(devices);
// 建立设备与变量表的关联
foreach (var deviceDto in devicesDtos)
@@ -148,7 +148,7 @@ public class DataLoaderService : IDataLoaderService
{
_appDataStorageService.VariableTables.Clear();
var variableTables = await _repositoryManager.VariableTables.GetAllAsync();
- var variableTableDtos = _mapper.Map>(variableTables);
+ var variableTableDtos = _mapper.Map>(variableTables);
// 建立变量表与变量的关联
foreach (var variableTableDto in variableTableDtos)
{
@@ -171,7 +171,7 @@ public class DataLoaderService : IDataLoaderService
_appDataStorageService.Variables.Clear();
var variables = await _repositoryManager.Variables.GetAllAsync();
- var variableDtos = _mapper.Map>(variables);
+ var variableDtos = _mapper.Map>(variables);
// 将变量添加到安全字典
foreach (var variableDto in variableDtos)
{
diff --git a/DMS.Application/Services/Database/DeviceAppService.cs b/DMS.Application/Services/Database/DeviceAppService.cs
index 3b4e9b1..759abc2 100644
--- a/DMS.Application/Services/Database/DeviceAppService.cs
+++ b/DMS.Application/Services/Database/DeviceAppService.cs
@@ -33,20 +33,19 @@ public class DeviceAppService : IDeviceAppService
///
/// 设备ID。
/// 设备数据传输对象。
- public async Task GetDeviceByIdAsync(int id)
- {
+ public async Task GetDeviceByIdAsync(int id) {
var device = await _repoManager.Devices.GetByIdAsync(id);
- return _mapper.Map(device);
+ return device;
}
///
/// 异步获取所有设备数据传输对象列表。
///
/// 设备数据传输对象列表。
- public async Task> GetAllDevicesAsync()
+ public async Task> GetAllDevicesAsync()
{
var devices = await _repoManager.Devices.GetAllAsync();
- return _mapper.Map>(devices);
+ return devices;
}
///
@@ -62,8 +61,7 @@ public class DeviceAppService : IDeviceAppService
{
await _repoManager.BeginTranAsync();
- var device = _mapper.Map(dto.Device);
- var addDevice = await _repoManager.Devices.AddAsync(device);
+ var addDevice = await _repoManager.Devices.AddAsync(dto.Device);
if (addDevice == null || addDevice.Id == 0)
{
throw new InvalidOperationException($"添加设备失败:{addDevice}");
@@ -92,12 +90,12 @@ public class DeviceAppService : IDeviceAppService
if (dto.VariableTable != null)
{
var variableTable = _mapper.Map(dto.VariableTable);
- variableTable.DeviceId = device.Id; // 关联新设备ID
- variableTable.Protocol = device.Protocol;
+ variableTable.DeviceId = dto.Device.Id; // 关联新设备ID
+ variableTable.Protocol = dto.Device.Protocol;
var addVariableTable = await _repoManager.VariableTables.AddAsync(variableTable);
if (addVariableTable == null || addVariableTable.Id == 0)
{
- throw new InvalidOperationException($"添加设备变量表失败,设备:{device.Name},变量表:{variableTable.Name}");
+ throw new InvalidOperationException($"添加设备变量表失败,设备:{dto.Device.Name},变量表:{variableTable.Name}");
}
_mapper.Map(addVariableTable,dto.VariableTable);
dto.VariableTable.Device = dto.Device;
@@ -134,21 +132,21 @@ public class DeviceAppService : IDeviceAppService
///
/// 异步更新一个已存在的设备。
///
- /// 要更新的设备数据传输对象。
+ /// 要更新的设备。
/// 受影响的行数。
/// 如果找不到设备。
- public async Task UpdateDeviceAsync(DeviceDto deviceDto)
+ public async Task UpdateDeviceAsync(Device device)
{
await _repoManager.BeginTranAsync();
- var device = await _repoManager.Devices.GetByIdAsync(deviceDto.Id);
- if (device == null)
+ var existingDevice = await _repoManager.Devices.GetByIdAsync(device.Id);
+ if (existingDevice == null)
{
- throw new ApplicationException($"Device with ID {deviceDto.Id} not found.");
+ throw new ApplicationException($"Device with ID {device.Id} not found.");
}
- _mapper.Map(deviceDto, device);
- int res=await _repoManager.Devices.UpdateAsync(device);
- var menu=await _repoManager.Menus.GetMenuByTargetIdAsync(MenuType.DeviceMenu, deviceDto.Id);
+ _mapper.Map(device, existingDevice);
+ int res=await _repoManager.Devices.UpdateAsync(existingDevice);
+ var menu=await _repoManager.Menus.GetMenuByTargetIdAsync(MenuType.DeviceMenu, device.Id);
if (menu != null)
{
menu.Header = device.Name;
@@ -230,9 +228,9 @@ public class DeviceAppService : IDeviceAppService
///
/// 协议类型。
/// 设备数据传输对象列表。
- public async Task> GetDevicesByProtocolAsync(ProtocolType protocol)
+ public async Task> GetDevicesByProtocolAsync(ProtocolType protocol)
{
var devices = await _repoManager.Devices.GetAllAsync();
- return _mapper.Map>(devices);
+ return devices;
}
}
\ No newline at end of file
diff --git a/DMS.Application/Services/Database/VariableAppService.cs b/DMS.Application/Services/Database/VariableAppService.cs
index c17ea5f..7a24261 100644
--- a/DMS.Application/Services/Database/VariableAppService.cs
+++ b/DMS.Application/Services/Database/VariableAppService.cs
@@ -32,10 +32,10 @@ public class VariableAppService : IVariableAppService
///
/// 变量ID。
/// 变量数据传输对象。
- public async Task GetVariableByIdAsync(int id)
+ public async Task GetVariableByIdAsync(int id)
{
var variable = await _repoManager.Variables.GetByIdAsync(id);
- return _mapper.Map(variable);
+ return variable;
}
///
@@ -43,10 +43,10 @@ public class VariableAppService : IVariableAppService
///
/// OPC UA NodeId。
/// 变量数据传输对象。
- public async Task GetVariableByOpcUaNodeIdAsync(string opcUaNodeId)
+ public async Task GetVariableByOpcUaNodeIdAsync(string opcUaNodeId)
{
var variable = await _repoManager.Variables.GetByOpcUaNodeIdAsync(opcUaNodeId);
- return variable == null ? null : _mapper.Map(variable);
+ return variable ;
}
///
@@ -54,37 +54,33 @@ public class VariableAppService : IVariableAppService
///
/// OPC UA NodeId列表。
/// 变量数据传输对象列表。
- public async Task> GetVariableByOpcUaNodeIdsAsync(List opcUaNodeIds)
+ public async Task> GetVariableByOpcUaNodeIdsAsync(List opcUaNodeIds)
{
var variables = await _repoManager.Variables.GetByOpcUaNodeIdsAsync(opcUaNodeIds);
- return _mapper.Map>(variables);
+ return variables;
}
///
/// 异步获取所有变量数据传输对象列表。
///
/// 变量数据传输对象列表。
- public async Task> GetAllVariablesAsync()
+ public async Task> GetAllVariablesAsync()
{
var variables = await _repoManager.Variables.GetAllAsync();
- return _mapper.Map>(variables);
+ return _mapper.Map>(variables);
}
///
/// 异步创建一个新变量(事务性操作)。
///
- /// 要创建的变量数据传输对象。
- /// 新创建的变量数据传输对象。
- /// 如果创建变量时发生错误。
- public async Task CreateVariableAsync(VariableDto variableDto)
+/// 要创建的变量数据传输对象。
+ public async Task CreateVariableAsync(Variable variable)
{
try
{
await _repoManager.BeginTranAsync();
- var variable = _mapper.Map(variableDto);
- var addedVariable = await _repoManager.Variables.AddAsync(variable);
- await _repoManager.CommitAsync();
- return _mapper.Map(addedVariable);
+ var addedVariable = await _repoManager.Variables.AddAsync(variable); await _repoManager.CommitAsync();
+ return _mapper.Map(addedVariable);
}
catch (Exception ex)
{
@@ -96,20 +92,18 @@ public class VariableAppService : IVariableAppService
///
/// 异步更新一个已存在的变量(事务性操作)。
///
- /// 要更新的变量数据传输对象。
- /// 受影响的行数。
- /// 如果找不到变量或更新变量时发生错误。
- public async Task UpdateVariableAsync(VariableDto variableDto)
+/// 要更新的变量数据传输对象。
+ public async Task UpdateVariableAsync(Variable variable)
{
try
{
await _repoManager.BeginTranAsync();
- var variable = await _repoManager.Variables.GetByIdAsync(variableDto.Id);
- if (variable == null)
+ var existingVariable = await _repoManager.Variables.GetByIdAsync(variable.Id);
+ if (existingVariable == null)
{
- throw new ApplicationException($"Variable with ID {variableDto.Id} not found.");
+ throw new ApplicationException($"Variable with ID {variable.Id} not found.");
}
- _mapper.Map(variableDto, variable);
+ _mapper.Map(variable, existingVariable);
int res = await _repoManager.Variables.UpdateAsync(variable);
await _repoManager.CommitAsync();
return res;
@@ -124,25 +118,25 @@ public class VariableAppService : IVariableAppService
///
/// 异步批量更新变量(事务性操作)。
///
- /// 要更新的变量数据传输对象列表。
+ /// 要更新的变量数据传输对象列表。
/// 受影响的行数。
/// 如果更新变量时发生错误。
- public async Task UpdateVariablesAsync(List variableDtos)
+ public async Task UpdateVariablesAsync(List variables)
{
try
{
await _repoManager.BeginTranAsync();
int totalAffected = 0;
- foreach (var variableDto in variableDtos)
+ foreach (var variable in variables)
{
- var variable = await _repoManager.Variables.GetByIdAsync(variableDto.Id);
- if (variable == null)
+ var existingVariable = await _repoManager.Variables.GetByIdAsync(variable.Id);
+ if (existingVariable == null)
{
- throw new ApplicationException($"Variable with ID {variableDto.Id} not found.");
+ throw new ApplicationException($"Variable with ID {variable.Id} not found.");
}
- _mapper.Map(variableDto, variable);
- int res = await _repoManager.Variables.UpdateAsync(variable);
+ _mapper.Map(variable, existingVariable);
+ int res = await _repoManager.Variables.UpdateAsync(existingVariable);
totalAffected += res;
}
@@ -220,13 +214,13 @@ public class VariableAppService : IVariableAppService
}
}
- public async Task> BatchImportVariablesAsync(List variables)
+ public async Task> BatchImportVariablesAsync(List variables)
{
try
{
var variableModels = _mapper.Map>(variables);
var addedVariables = await _repoManager.Variables.AddBatchAsync(variableModels);
- return _mapper.Map>(addedVariables);
+ return _mapper.Map>(addedVariables);
}
catch (Exception ex)
{
@@ -234,11 +228,11 @@ public class VariableAppService : IVariableAppService
}
}
- public async Task> FindExistingVariablesAsync(IEnumerable variablesToCheck)
+ public async Task> FindExistingVariablesAsync(IEnumerable variablesToCheck)
{
if (variablesToCheck == null || !variablesToCheck.Any())
{
- return new List();
+ return new List();
}
var names = variablesToCheck.Select(v => v.Name).Where(n => !string.IsNullOrEmpty(n)).Distinct().ToList();
@@ -254,23 +248,23 @@ public class VariableAppService : IVariableAppService
if (existingVariablesFromDb == null || !existingVariablesFromDb.Any())
{
- return new List();
+ return new List();
}
var existingNames = new HashSet(existingVariablesFromDb.Select(v => v.Name).Where(n => !string.IsNullOrEmpty(n)));
var existingS7Addresses = new HashSet(existingVariablesFromDb.Select(v => v.S7Address).Where(a => !string.IsNullOrEmpty(a)));
var existingOpcUaNodeIds = new HashSet(existingVariablesFromDb.Select(v => v.OpcUaNodeId).Where(id => !string.IsNullOrEmpty(id)));
- var result = variablesToCheck.Where(v =>
- (!string.IsNullOrEmpty(v.Name) && existingNames.Contains(v.Name)) ||
- (!string.IsNullOrEmpty(v.S7Address) && existingS7Addresses.Contains(v.S7Address)) ||
- (!string.IsNullOrEmpty(v.OpcUaNodeId) && existingOpcUaNodeIds.Contains(v.OpcUaNodeId)))
+ var result = existingVariablesFromDb.Where(v =>
+ (names.Any() && !string.IsNullOrEmpty(v.Name) && names.Contains(v.Name)) ||
+ (s7Addresses.Any() && !string.IsNullOrEmpty(v.S7Address) && s7Addresses.Contains(v.S7Address)) ||
+ (opcUaNodeIds.Any() && !string.IsNullOrEmpty(v.OpcUaNodeId) && opcUaNodeIds.Contains(v.OpcUaNodeId)))
.ToList();
return result;
}
- public async Task FindExistingVariableAsync(VariableDto variableToCheck)
+ public async Task FindExistingVariableAsync(Variable variableToCheck)
{
if (variableToCheck == null)
{
@@ -278,7 +272,7 @@ public class VariableAppService : IVariableAppService
}
// 创建一个包含单个元素的列表以便复用现有的逻辑
- var variablesToCheck = new List { variableToCheck };
+ var variablesToCheck = new List { variableToCheck };
var existingVariables = await FindExistingVariablesAsync(variablesToCheck);
// 如果找到了匹配的变量,返回第一个(也是唯一一个)
diff --git a/DMS.Application/Services/Database/VariableTableAppService.cs b/DMS.Application/Services/Database/VariableTableAppService.cs
index 1ab6821..6557e8d 100644
--- a/DMS.Application/Services/Database/VariableTableAppService.cs
+++ b/DMS.Application/Services/Database/VariableTableAppService.cs
@@ -33,20 +33,20 @@ namespace DMS.Application.Services.Database
///
/// 变量表ID。
/// 变量表数据传输对象。
- public async Task GetVariableTableByIdAsync(int id)
+ public async Task GetVariableTableByIdAsync(int id)
{
var variableTable = await _repositoryManager.VariableTables.GetByIdAsync(id);
- return _mapper.Map(variableTable);
+ return _mapper.Map(variableTable);
}
///
/// 异步获取所有变量表。
///
/// 变量表数据传输对象列表。
- public async Task> GetAllVariableTablesAsync()
+ public async Task> GetAllVariableTablesAsync()
{
var variableTables = await _repositoryManager.VariableTables.GetAllAsync();
- return _mapper.Map>(variableTables);
+ return _mapper.Map>(variableTables);
}
///
@@ -107,10 +107,10 @@ namespace DMS.Application.Services.Database
///
/// 异步更新变量表。
///
- /// 要更新的变量表数据传输对象。
+ /// 要更新的变量表数据传输对象。
/// 受影响的行数。
/// 如果找不到变量表。
- public async Task UpdateVariableTableAsync(VariableTableDto variableTableDto)
+ public async Task UpdateVariableTableAsync(VariableTable variableTableDto)
{
try
{
diff --git a/DMS.Application/Services/Management/DeviceManagementService.cs b/DMS.Application/Services/Management/DeviceManagementService.cs
index 18bf818..6576be1 100644
--- a/DMS.Application/Services/Management/DeviceManagementService.cs
+++ b/DMS.Application/Services/Management/DeviceManagementService.cs
@@ -4,6 +4,7 @@ using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Application.Interfaces.Management;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Services.Management;
@@ -26,7 +27,7 @@ public class DeviceManagementService : IDeviceManagementService
///
/// 异步根据ID获取设备DTO。
///
- public async Task GetDeviceByIdAsync(int id)
+ public async Task GetDeviceByIdAsync(int id)
{
return await _deviceAppService.GetDeviceByIdAsync(id);
}
@@ -34,7 +35,7 @@ public class DeviceManagementService : IDeviceManagementService
///
/// 异步获取所有设备DTO列表。
///
- public async Task> GetAllDevicesAsync()
+ public async Task> GetAllDevicesAsync()
{
return await _deviceAppService.GetAllDevicesAsync();
}
@@ -65,15 +66,15 @@ public class DeviceManagementService : IDeviceManagementService
///
/// 异步更新一个已存在的设备。
///
- public async Task UpdateDeviceAsync(DeviceDto deviceDto)
+ public async Task UpdateDeviceAsync(Device device)
{
- var result = await _deviceAppService.UpdateDeviceAsync(deviceDto);
+ var result = await _deviceAppService.UpdateDeviceAsync(device);
// 更新成功后,更新内存中的设备
- if (result > 0 && deviceDto != null)
+ if (result > 0 && device != null)
{
- _appDataStorageService.Devices.AddOrUpdate(deviceDto.Id, deviceDto, (key, oldValue) => deviceDto);
- _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, deviceDto));
+ _appDataStorageService.Devices.AddOrUpdate(device.Id, device, (key, oldValue) => device);
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, device));
}
return result;
@@ -90,9 +91,9 @@ public class DeviceManagementService : IDeviceManagementService
// 删除成功后,从内存中移除设备
if (result && device != null)
{
- if (_appDataStorageService.Devices.TryGetValue(deviceId, out var deviceDto))
+ if (_appDataStorageService.Devices.TryGetValue(deviceId, out var deviceInStorage))
{
- foreach (var variableTable in deviceDto.VariableTables)
+ foreach (var variableTable in deviceInStorage.VariableTables)
{
foreach (var variable in variableTable.Variables)
{
@@ -104,7 +105,7 @@ public class DeviceManagementService : IDeviceManagementService
_appDataStorageService.Devices.TryRemove(deviceId, out _);
- _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Deleted, deviceDto));
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Deleted, deviceInStorage));
}
}
diff --git a/DMS.Application/Services/Management/VariableManagementService.cs b/DMS.Application/Services/Management/VariableManagementService.cs
index 8185d3b..8cfc4aa 100644
--- a/DMS.Application/Services/Management/VariableManagementService.cs
+++ b/DMS.Application/Services/Management/VariableManagementService.cs
@@ -6,6 +6,7 @@ using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Application.Interfaces.Management;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Services.Management;
@@ -37,7 +38,7 @@ public class VariableManagementService : IVariableManagementService
///
/// 异步根据ID获取变量DTO。
///
- public async Task GetVariableByIdAsync(int id)
+ public async Task GetVariableByIdAsync(int id)
{
return await _variableAppService.GetVariableByIdAsync(id);
}
@@ -45,7 +46,7 @@ public class VariableManagementService : IVariableManagementService
///
/// 异步获取所有变量DTO列表。
///
- public async Task> GetAllVariablesAsync()
+ public async Task> GetAllVariablesAsync()
{
return await _variableAppService.GetAllVariablesAsync();
}
@@ -53,18 +54,16 @@ public class VariableManagementService : IVariableManagementService
///
/// 异步创建一个新变量。
///
- public async Task CreateVariableAsync(VariableDto variableDto)
+ public async Task CreateVariableAsync(Variable variable)
{
- var result = await _variableAppService.CreateVariableAsync(variableDto);
+ var result = await _variableAppService.CreateVariableAsync(variable);
// 创建成功后,将变量添加到内存中
if (result != null)
{
- VariableTableDto variableTableDto = null;
if (_appDataStorageService.VariableTables.TryGetValue(result.VariableTableId, out var variableTable))
{
- variableTableDto = variableTable;
- result.VariableTable = variableTableDto;
+ result.VariableTable = variableTable;
variableTable.Variables.Add(result);
}
@@ -81,51 +80,51 @@ public class VariableManagementService : IVariableManagementService
///
/// 异步更新一个已存在的变量。
///
- public async Task UpdateVariableAsync(VariableDto variableDto)
+ public async Task UpdateVariableAsync(Variable variable)
{
- return await UpdateVariablesAsync(new List() { variableDto});
+ return await UpdateVariablesAsync(new List() { variable});
}
///
/// 异步批量更新变量。
///
- public async Task UpdateVariablesAsync(List variableDtos)
+ public async Task UpdateVariablesAsync(List variables)
{
- var result = await _variableAppService.UpdateVariablesAsync(variableDtos);
+ var result = await _variableAppService.UpdateVariablesAsync(variables);
// 批量更新成功后,更新内存中的变量
- if (result > 0 && variableDtos != null)
+ if (result > 0 && variables != null)
{
- foreach (var variableDto in variableDtos)
+ foreach (var variable in variables)
{
- if (_appDataStorageService.Variables.TryGetValue(variableDto.Id, out var mVariableDto))
+ if (_appDataStorageService.Variables.TryGetValue(variable.Id, out var mVariable))
{
// 比较旧值和新值,确定哪个属性发生了变化
- var changedProperties = GetChangedProperties(mVariableDto, variableDto);
+ var changedProperties = GetChangedProperties(mVariable, variable);
// 更新内存中的变量
- _mapper.Map(variableDto,mVariableDto);
+ _mapper.Map(variable, mVariable);
// 为每个发生变化的属性触发事件
foreach (var property in changedProperties)
{
_eventService.RaiseVariableChanged(
- this, new VariableChangedEventArgs(ActionChangeType.Updated, variableDto, property));
+ this, new VariableChangedEventArgs(ActionChangeType.Updated, variable, property));
}
// 如果没有任何属性发生变化,至少触发一次更新事件
if (changedProperties.Count == 0)
{
_eventService.RaiseVariableChanged(
- this, new VariableChangedEventArgs(ActionChangeType.Updated, variableDto, VariablePropertyType.All));
+ this, new VariableChangedEventArgs(ActionChangeType.Updated, variable, VariablePropertyType.All));
}
}
else
{
// 如果内存中不存在该变量,则直接添加
- _appDataStorageService.Variables.TryAdd(variableDto.Id, variableDto);
+ _appDataStorageService.Variables.TryAdd(variable.Id, variable);
_eventService.RaiseVariableChanged(
- this, new VariableChangedEventArgs(ActionChangeType.Added, variableDto, VariablePropertyType.All));
+ this, new VariableChangedEventArgs(ActionChangeType.Added, variable, VariablePropertyType.All));
}
}
}
@@ -138,23 +137,21 @@ public class VariableManagementService : IVariableManagementService
///
public async Task DeleteVariableAsync(int id)
{
- var variable = await _variableAppService.GetVariableByIdAsync(id); // 获取变量信息用于内存删除
var result = await _variableAppService.DeleteVariableAsync(id);
// 删除成功后,从内存中移除变量
- if (result && variable != null)
+ if (result)
{
- if (_appDataStorageService.Variables.TryRemove(id, out var variableDto))
+ if (_appDataStorageService.Variables.TryRemove(id, out var variable))
{
- VariableTableDto variableTableDto = null;
- if (variableDto != null && _appDataStorageService.VariableTables.TryGetValue(variableDto.VariableTableId, out var variableTable))
+ if (variable != null && _appDataStorageService.VariableTables.TryGetValue(variable.VariableTableId, out var variableTable))
{
- variableTableDto = variableTable;
- variableTable.Variables.Remove(variableDto);
+ variableTable.Variables.Remove(variable);
+
}
_eventService.RaiseVariableChanged(
- this, new VariableChangedEventArgs(ActionChangeType.Deleted, variableDto));
+ this, new VariableChangedEventArgs(ActionChangeType.Deleted, variable));
}
}
@@ -164,14 +161,14 @@ public class VariableManagementService : IVariableManagementService
///
/// 异步批量导入变量。
///
- public async Task> BatchImportVariablesAsync(List variables)
+ public async Task> BatchImportVariablesAsync(List variables)
{
var result = await _variableAppService.BatchImportVariablesAsync(variables);
- foreach (var variableDto in result)
+ foreach (var variable in result)
{
- if (_appDataStorageService.VariableTables.TryGetValue(variableDto.VariableTableId ,out var variableTable))
+ if (_appDataStorageService.VariableTables.TryGetValue(variable.VariableTableId ,out var variableTable))
{
- variableDto.VariableTable = variableTable;
+ variable.VariableTable = variableTable;
}
}
@@ -186,7 +183,7 @@ public class VariableManagementService : IVariableManagementService
return result;
}
- public async Task> FindExistingVariablesAsync(IEnumerable variablesToCheck)
+ public async Task> FindExistingVariablesAsync(IEnumerable variablesToCheck)
{
return await _variableAppService.FindExistingVariablesAsync(variablesToCheck);
}
@@ -197,7 +194,7 @@ public class VariableManagementService : IVariableManagementService
/// 旧变量值
/// 新变量值
/// 发生变化的属性列表
- private List GetChangedProperties(VariableDto oldVariable, VariableDto newVariable)
+ private List GetChangedProperties(Variable oldVariable, Variable newVariable)
{
var changedProperties = new List();
@@ -261,17 +258,15 @@ public class VariableManagementService : IVariableManagementService
{
foreach (var id in ids)
{
- if (_appDataStorageService.Variables.TryRemove(id, out var variableDto))
+ if (_appDataStorageService.Variables.TryRemove(id, out var variable))
{
- VariableTableDto variableTableDto = null;
- if (variableDto != null && _appDataStorageService.VariableTables.TryGetValue(variableDto.VariableTableId, out var variableTable))
+ if (variable != null && _appDataStorageService.VariableTables.TryGetValue(variable.VariableTableId, out var variableTable))
{
- variableTableDto = variableTable;
- variableTable.Variables.Remove(variableDto);
+ variableTable.Variables.Remove(variable);
}
_eventService.RaiseVariableChanged(
- this, new VariableChangedEventArgs(ActionChangeType.Deleted, variableDto));
+ this, new VariableChangedEventArgs(ActionChangeType.Deleted, variable));
}
}
}
diff --git a/DMS.Application/Services/Management/VariableTableManagementService.cs b/DMS.Application/Services/Management/VariableTableManagementService.cs
index aaa5c6e..b780659 100644
--- a/DMS.Application/Services/Management/VariableTableManagementService.cs
+++ b/DMS.Application/Services/Management/VariableTableManagementService.cs
@@ -1,10 +1,10 @@
-using System.Collections.Concurrent;
using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Application.Interfaces.Management;
using DMS.Core.Enums;
+using DMS.Core.Models;
namespace DMS.Application.Services.Management;
@@ -22,7 +22,7 @@ public class VariableTableManagementService : IVariableTableManagementService
///
public event EventHandler OnVariableTableChanged;
- public VariableTableManagementService(IVariableTableAppService variableTableAppService,
+ public VariableTableManagementService(IVariableTableAppService variableTableAppService,
IAppDataStorageService appDataStorageService,
IEventService eventService)
{
@@ -34,7 +34,7 @@ public class VariableTableManagementService : IVariableTableManagementService
///
/// 异步根据ID获取变量表DTO。
///
- public async Task GetVariableTableByIdAsync(int id)
+ public async Task GetVariableTableByIdAsync(int id)
{
return await _variableTableAppService.GetVariableTableByIdAsync(id);
}
@@ -42,7 +42,7 @@ public class VariableTableManagementService : IVariableTableManagementService
///
/// 异步获取所有变量表DTO列表。
///
- public async Task> GetAllVariableTablesAsync()
+ public async Task> GetAllVariableTablesAsync()
{
return await _variableTableAppService.GetAllVariableTablesAsync();
}
@@ -53,25 +53,20 @@ public class VariableTableManagementService : IVariableTableManagementService
public async Task CreateVariableTableAsync(CreateVariableTableWithMenuDto dto)
{
var result = await _variableTableAppService.CreateVariableTableAsync(dto);
-
+
// 创建成功后,将变量表添加到内存中
if (result?.VariableTable != null)
{
// 添加null检查
- if (result.VariableTable == null)
- return result;
-
- DeviceDto deviceDto = null;
- if (_appDataStorageService.Devices != null &&
+ if (_appDataStorageService.Devices != null &&
_appDataStorageService.Devices.TryGetValue(result.VariableTable.DeviceId, out var device))
{
- deviceDto = device;
// 确保VariableTables不为null
if (device.VariableTables == null)
- device.VariableTables = new List();
-
+ device.VariableTables = new List();
+
device.VariableTables.Add(result.VariableTable);
-
+
// 确保Device属性不为null
if (result.VariableTable != null)
result.VariableTable.Device = device;
@@ -85,32 +80,26 @@ public class VariableTableManagementService : IVariableTableManagementService
result.VariableTable));
}
}
-
+
return result;
}
///
/// 异步更新一个已存在的变量表。
///
- public async Task UpdateVariableTableAsync(VariableTableDto variableTableDto)
+ public async Task UpdateVariableTableAsync(VariableTable variableTable)
{
- var result = await _variableTableAppService.UpdateVariableTableAsync(variableTableDto);
-
- // 更新成功后,更新内存中的变量表
- if (result > 0 && variableTableDto != null)
- {
- DeviceDto deviceDto = null;
- if (_appDataStorageService.Devices.TryGetValue(variableTableDto.DeviceId, out var device))
- {
- deviceDto = device;
- }
+ var result = await _variableTableAppService.UpdateVariableTableAsync(variableTable);
- _appDataStorageService.VariableTables.AddOrUpdate(variableTableDto.Id, variableTableDto, (key, oldValue) => variableTableDto);
+ // 更新成功后,更新内存中的变量表
+ if (result > 0 && variableTable != null)
+ {
+ _appDataStorageService.VariableTables.AddOrUpdate(variableTable.Id, variableTable, (key, oldValue) => variableTable);
_eventService.RaiseVariableTableChanged(this, new VariableTableChangedEventArgs(
DataChangeType.Updated,
- variableTableDto));
+ variableTable));
}
-
+
return result;
}
@@ -119,32 +108,29 @@ public class VariableTableManagementService : IVariableTableManagementService
///
public async Task DeleteVariableTableAsync(int id)
{
- var variableTable = await _variableTableAppService.GetVariableTableByIdAsync(id); // 获取变量表信息用于内存删除
var result = await _variableTableAppService.DeleteVariableTableAsync(id);
-
+
// 删除成功后,从内存中移除变量表
- if (result && variableTable != null)
+ if (result )
{
- if (_appDataStorageService.VariableTables.TryRemove(id, out var variableTableDto))
+ if (_appDataStorageService.VariableTables.TryRemove(id, out var variableTable))
{
- DeviceDto deviceDto = null;
- if (variableTableDto != null && _appDataStorageService.Devices.TryGetValue(variableTableDto.DeviceId, out var device))
+ if (variableTable != null && _appDataStorageService.Devices.TryGetValue(variableTable.DeviceId, out var device))
{
- deviceDto = device;
if (device.VariableTables != null)
- device.VariableTables.Remove(variableTableDto);
+ device.VariableTables.Remove(variableTable);
}
_eventService.RaiseVariableTableChanged(this, new VariableTableChangedEventArgs(
DataChangeType.Deleted,
- variableTableDto));
+ variableTable));
}
}
-
+
return result;
}
-
-
+
+
}
\ No newline at end of file
diff --git a/DMS.Application/Services/Processors/HistoryProcessor.cs b/DMS.Application/Services/Processors/HistoryProcessor.cs
index 35ce8fe..ab4d147 100644
--- a/DMS.Application/Services/Processors/HistoryProcessor.cs
+++ b/DMS.Application/Services/Processors/HistoryProcessor.cs
@@ -56,7 +56,7 @@ public class HistoryProcessor : IVariableProcessor, IDisposable
}
}
- // 将 VariableDto 转换为 VariableHistory
+ // 将 Variable 转换为 VariableHistory
var historyData = new VariableHistory
{
VariableId = context.Data.Id,
diff --git a/DMS.Application/Services/Processors/UpdateDbVariableProcessor.cs b/DMS.Application/Services/Processors/UpdateDbVariableProcessor.cs
index c620a60..959475b 100644
--- a/DMS.Application/Services/Processors/UpdateDbVariableProcessor.cs
+++ b/DMS.Application/Services/Processors/UpdateDbVariableProcessor.cs
@@ -17,7 +17,7 @@ public class UpdateDbVariableProcessor : IVariableProcessor, IDisposable
private const int BATCH_SIZE = 50; // 批量更新的阈值
private const int TIMER_INTERVAL_MS = 30 * 1000; // 30秒
- private readonly ConcurrentQueue _queue = new();
+ private readonly ConcurrentQueue _queue = new();
private readonly Timer _timer;
private readonly IRepositoryManager _repositoryManager;
private readonly ILogger _logger;
@@ -52,7 +52,7 @@ public class UpdateDbVariableProcessor : IVariableProcessor, IDisposable
// 停止定时器,防止在写入过程中再次触发
_timer.Change(Timeout.Infinite, Timeout.Infinite);
- var itemsToProcess = new List();
+ var itemsToProcess = new List();
while (_queue.TryDequeue(out var item))
{
itemsToProcess.Add(item);
diff --git a/DMS.Application/Services/Processors/ValueConvertProcessor.cs b/DMS.Application/Services/Processors/ValueConvertProcessor.cs
index 233d2ae..a2f4def 100644
--- a/DMS.Application/Services/Processors/ValueConvertProcessor.cs
+++ b/DMS.Application/Services/Processors/ValueConvertProcessor.cs
@@ -4,6 +4,7 @@ using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Application.Models;
using DMS.Core.Enums;
+using DMS.Core.Models;
using Microsoft.Extensions.Logging;
namespace DMS.Application.Services.Processors;
@@ -58,7 +59,7 @@ public class ValueConvertProcessor : IVariableProcessor
/// 根据转换公式计算用于UI显示的DisplayValue
///
/// 需要处理的变量DTO
- private void CalculateDisplayValue(VariableDto variable)
+ private void CalculateDisplayValue(Variable variable)
{
// 默认情况下,显示值等于原始数据值
variable.DisplayValue = variable.DataValue;
@@ -106,7 +107,7 @@ public class ValueConvertProcessor : IVariableProcessor
///
/// 关联的变量 DTO
/// 从 S7 读取的原始对象值
- private void ConvertS7ValueToStringAndNumeric(VariableDto variable, string value)
+ private void ConvertS7ValueToStringAndNumeric(Variable variable, string value)
{
if (value == null)
return;
diff --git a/DMS.Application/Services/Triggers/Impl/TriggerActionExecutor.cs b/DMS.Application/Services/Triggers/Impl/TriggerActionExecutor.cs
index 29e84d5..118e80c 100644
--- a/DMS.Application/Services/Triggers/Impl/TriggerActionExecutor.cs
+++ b/DMS.Application/Services/Triggers/Impl/TriggerActionExecutor.cs
@@ -93,7 +93,7 @@ namespace DMS.Application.Services.Triggers.Impl
// Simple token replacement - in practice, use a templating engine like Scriban, RazorLight etc.
// Note: This assumes context.Variable and context.CurrentValue have Name properties/values.
- // You might need to adjust the token names and values based on your actual VariableDto structure.
+ // You might need to adjust the token names and values based on your actual Variable structure.
var subject = subjectTemplate
.Replace("{VariableName}", context.Variable?.Name ?? "Unknown")
.Replace("{CurrentValue}", context.CurrentValue?.ToString() ?? "N/A")
diff --git a/DMS.Application/Services/Triggers/Impl/TriggerEvaluationService.cs b/DMS.Application/Services/Triggers/Impl/TriggerEvaluationService.cs
index 0ce4a1d..d7ac7e2 100644
--- a/DMS.Application/Services/Triggers/Impl/TriggerEvaluationService.cs
+++ b/DMS.Application/Services/Triggers/Impl/TriggerEvaluationService.cs
@@ -47,9 +47,10 @@ namespace DMS.Application.Services.Triggers.Impl
try
{
var triggers = await _triggerManagementService.GetTriggersForVariableAsync(variableId);
- // 注意:这里不再通过 _variableAppService 获取 VariableDto,
- // 而是在调用 ExecuteActionAsync 时,由上层(DataEventService)提供。
- // 如果需要 VariableDto 信息,可以在 ExecuteActionAsync 的 TriggerContext 中携带。
+// 注意:这里不再通过 _variableAppService 获取 Variable,
+// 如果需要 Variable 信息,可以在 ExecuteActionAsync 的 TriggerContext 中携带。
+// 创建一个临时的上下文对象,其中 Variable 可以为 null,
+// 在实际应用中,你可能需要通过某种方式获取 Variable。
_logger.LogDebug($"Evaluating {triggers.Count(t => t.IsActive)} active triggers for variable ID: {variableId}");
@@ -59,9 +60,7 @@ namespace DMS.Application.Services.Triggers.Impl
{
if (EvaluateCondition(trigger, currentValue))
{
- // 创建一个临时的上下文对象,其中 VariableDto 可以为 null,
- // 因为我们目前没有从 _variableAppService 获取它。
- // 在实际应用中,你可能需要通过某种方式获取 VariableDto。
+
var context = new TriggerContext(trigger, currentValue, null);
await _actionExecutor.ExecuteActionAsync(context);
diff --git a/DMS.Application/Services/Triggers/TriggerContext.cs b/DMS.Application/Services/Triggers/TriggerContext.cs
index 03fc7c0..683284a 100644
--- a/DMS.Application/Services/Triggers/TriggerContext.cs
+++ b/DMS.Application/Services/Triggers/TriggerContext.cs
@@ -1,5 +1,6 @@
-using System;
using DMS.Application.DTOs;
+using DMS.Core.Models;
+using System;
namespace DMS.Application.Services.Triggers
{
@@ -9,5 +10,5 @@ namespace DMS.Application.Services.Triggers
/// 被触发的触发器定义
/// 触发时变量的当前值
/// 关联的变量信息
- public record TriggerContext(TriggerDefinitionDto Trigger, object CurrentValue, VariableDto Variable);
+ public record TriggerContext(TriggerDefinitionDto Trigger, object CurrentValue, Variable Variable);
}
\ No newline at end of file
diff --git a/DMS.Infrastructure/Interfaces/Services/IOpcUaServiceManager.cs b/DMS.Infrastructure/Interfaces/Services/IOpcUaServiceManager.cs
index 5d4b458..020623c 100644
--- a/DMS.Infrastructure/Interfaces/Services/IOpcUaServiceManager.cs
+++ b/DMS.Infrastructure/Interfaces/Services/IOpcUaServiceManager.cs
@@ -1,4 +1,4 @@
-using DMS.Application.DTOs;
+using DMS.Core.Models;
using DMS.Infrastructure.Models;
using System;
using System.Collections.Generic;
@@ -20,7 +20,7 @@ namespace DMS.Infrastructure.Interfaces.Services
///
/// 添加设备到监控列表
///
- void AddDevice(DeviceDto device);
+ void AddDevice(DMS.Core.Models.Device device);
///
/// 移除设备监控
@@ -30,7 +30,7 @@ namespace DMS.Infrastructure.Interfaces.Services
///
/// 更新设备变量
///
- void UpdateVariables(int deviceId, List variables);
+ void UpdateVariables(int deviceId, List variables);
///
/// 获取设备连接状态
diff --git a/DMS.Infrastructure/Interfaces/Services/IS7ServiceManager.cs b/DMS.Infrastructure/Interfaces/Services/IS7ServiceManager.cs
index ef138cf..9bd47d9 100644
--- a/DMS.Infrastructure/Interfaces/Services/IS7ServiceManager.cs
+++ b/DMS.Infrastructure/Interfaces/Services/IS7ServiceManager.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
-using DMS.Application.DTOs;
+using DMS.Core.Models;
using DMS.Infrastructure.Services;
using DMS.Infrastructure.Services.S7;
@@ -21,7 +21,7 @@ namespace DMS.Infrastructure.Interfaces.Services
///
/// 添加设备到监控列表
///
- void AddDevice(DeviceDto device);
+ void AddDevice(DMS.Core.Models.Device device);
///
/// 移除设备监控
@@ -31,7 +31,7 @@ namespace DMS.Infrastructure.Interfaces.Services
///
/// 更新设备变量
///
- void UpdateVariables(int deviceId, List variables);
+ void UpdateVariables(int deviceId, List variables);
///
/// 获取设备连接状态
diff --git a/DMS.Infrastructure/Services/OpcUa/OpcUaServiceManager.cs b/DMS.Infrastructure/Services/OpcUa/OpcUaServiceManager.cs
index 46788bb..eae5f89 100644
--- a/DMS.Infrastructure/Services/OpcUa/OpcUaServiceManager.cs
+++ b/DMS.Infrastructure/Services/OpcUa/OpcUaServiceManager.cs
@@ -1,7 +1,6 @@
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Text;
-using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
using DMS.Application.Models;
@@ -99,7 +98,7 @@ namespace DMS.Infrastructure.Services.OpcUa
///
/// 处理设备添加事件
///
- private void HandleDeviceAdded(DeviceDto device)
+ private void HandleDeviceAdded(DMS.Core.Models.Device device)
{
if (device == null)
{
@@ -151,7 +150,7 @@ namespace DMS.Infrastructure.Services.OpcUa
///
/// 处理设备更新事件
///
- private void HandleDeviceUpdated(DeviceDto device)
+ private void HandleDeviceUpdated(DMS.Core.Models.Device device)
{
if (device == null)
{
@@ -303,7 +302,7 @@ namespace DMS.Infrastructure.Services.OpcUa
///
/// 添加设备到监控列表
///
- public void AddDevice(DeviceDto device)
+ public void AddDevice(DMS.Core.Models.Device device)
{
if (device == null)
throw new ArgumentNullException(nameof(device));
@@ -318,7 +317,7 @@ namespace DMS.Infrastructure.Services.OpcUa
{
Device = device,
OpcUaService = new OpcUaService(),
- Variables = new ConcurrentDictionary(),
+ Variables = new ConcurrentDictionary(),
IsConnected = false
};
@@ -341,7 +340,7 @@ namespace DMS.Infrastructure.Services.OpcUa
///
/// 更新设备变量
///
- public void UpdateVariables(int deviceId, List variables)
+ public void UpdateVariables(int deviceId, List variables)
{
if (_deviceContexts.TryGetValue(deviceId, out var context))
{
@@ -679,9 +678,9 @@ namespace DMS.Infrastructure.Services.OpcUa
case VariablePropertyType.OpcUaNodeId:
case VariablePropertyType.OpcUaUpdateType:
case VariablePropertyType.PollingInterval:
- if (context.Variables.TryGetValue(e.Variable.OpcUaNodeId, out var variableDto))
+ if (context.Variables.TryGetValue(e.Variable.OpcUaNodeId, out var variable))
{
- if (variableDto.IsActive)
+ if (variable.IsActive)
{
context.OpcUaService.UnsubscribeFromNode(e.Variable.OpcUaNodeId);
context.OpcUaService.SubscribeToNode(
@@ -744,9 +743,9 @@ namespace DMS.Infrastructure.Services.OpcUa
///
public class DeviceContext
{
- public DeviceDto Device { get; set; }
+ public DMS.Core.Models.Device Device { get; set; }
public OpcUaService OpcUaService { get; set; }
- public ConcurrentDictionary Variables { get; set; }
+ public ConcurrentDictionary Variables { get; set; }
public bool IsConnected { get; set; }
}
}
\ No newline at end of file
diff --git a/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs b/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs
index 18e26ea..e0b0fa8 100644
--- a/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs
+++ b/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs
@@ -2,6 +2,7 @@ using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
using DMS.Core.Enums;
+using DMS.Core.Models;
using DMS.Infrastructure.Interfaces.Services;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
@@ -113,7 +114,7 @@ namespace DMS.Infrastructure.Services.OpcUa
var variables = device.VariableTables?
.SelectMany(vt => vt.Variables)
.Where(v => v.IsActive && v.Protocol == ProtocolType.OpcUa)
- .ToList() ?? new List();
+ .ToList() ?? new List();
_opcUaServiceManager.UpdateVariables(device.Id, variables);
}
diff --git a/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs b/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs
index 0473856..842b2db 100644
--- a/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs
+++ b/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs
@@ -6,6 +6,7 @@ using DMS.Application.Interfaces;
using DMS.Application.Models;
using DMS.Core.Enums;
using DMS.Core.Events;
+using DMS.Core.Models;
using DMS.Infrastructure.Interfaces.Services;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
@@ -30,7 +31,7 @@ public class OptimizedS7BackgroundService : BackgroundService
private readonly int _s7PollOnceSleepTimeMs = 50;
// 存储每个设备的变量按轮询间隔分组
- private readonly ConcurrentDictionary>> _variablesByPollingInterval = new();
+ private readonly ConcurrentDictionary>> _variablesByPollingInterval = new();
///
@@ -132,7 +133,7 @@ public class OptimizedS7BackgroundService : BackgroundService
_s7ServiceManager.AddDevice(s7Device);
// 查找设备中所有要轮询的变量
- var variables = new List();
+ var variables = new List();
foreach (var variableTable in s7Device.VariableTables)
{
@@ -203,7 +204,7 @@ public class OptimizedS7BackgroundService : BackgroundService
///
/// 轮询设备的变量
///
- private async Task PollVariablesForDeviceAsync(S7DeviceContext context, List variables,
+ private async Task PollVariablesForDeviceAsync(S7DeviceContext context, List variables,
CancellationToken stoppingToken)
{
if (!_appDataStorageService.Devices.TryGetValue(context.Device.Id, out var device))
diff --git a/DMS.Infrastructure/Services/S7/S7DeviceAgent.cs b/DMS.Infrastructure/Services/S7/S7DeviceAgent.cs
index 0ac5281..97dc860 100644
--- a/DMS.Infrastructure/Services/S7/S7DeviceAgent.cs
+++ b/DMS.Infrastructure/Services/S7/S7DeviceAgent.cs
@@ -246,7 +246,7 @@ namespace DMS.Infrastructure.Services.S7
variable.UpdatedAt = DateTime.Now;
// 创建VariableDto对象
- var variableDto = new VariableDto
+ var variableDto = new Variable
{
Id = variable.Id,
Name = variable.Name,
diff --git a/DMS.Infrastructure/Services/S7/S7ServiceManager.cs b/DMS.Infrastructure/Services/S7/S7ServiceManager.cs
index 9a09d75..95dc700 100644
--- a/DMS.Infrastructure/Services/S7/S7ServiceManager.cs
+++ b/DMS.Infrastructure/Services/S7/S7ServiceManager.cs
@@ -1,10 +1,10 @@
using System.Collections.Concurrent;
using System.Diagnostics;
-using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
using DMS.Core.Enums;
using DMS.Core.Events;
+using DMS.Core.Models;
using DMS.Infrastructure.Interfaces.Services;
using Microsoft.Extensions.Logging;
using NPOI.HSSF.Record;
@@ -85,7 +85,7 @@ namespace DMS.Infrastructure.Services.S7
///
/// 添加设备到监控列表
///
- public void AddDevice(DeviceDto device)
+ public void AddDevice(DMS.Core.Models.Device device)
{
if (device == null)
throw new ArgumentNullException(nameof(device));
@@ -100,7 +100,7 @@ namespace DMS.Infrastructure.Services.S7
{
Device = device,
S7Service = _s7ServiceFactory.CreateService(),
- Variables = new ConcurrentDictionary(),
+ Variables = new ConcurrentDictionary(),
IsConnected = false
};
@@ -123,7 +123,7 @@ namespace DMS.Infrastructure.Services.S7
///
/// 更新设备变量
///
- public void UpdateVariables(int deviceId, List variables)
+ public void UpdateVariables(int deviceId, List variables)
{
if (_deviceContexts.TryGetValue(deviceId, out var context))
{
@@ -467,9 +467,9 @@ namespace DMS.Infrastructure.Services.S7
///
public class S7DeviceContext
{
- public DeviceDto Device { get; set; }
+ public DMS.Core.Models.Device Device { get; set; }
public IS7Service S7Service { get; set; }
- public ConcurrentDictionary Variables { get; set; }
+ public ConcurrentDictionary Variables { get; set; }
public bool IsConnected { get; set; }
}
}
\ No newline at end of file
diff --git a/DMS.WPF/Interfaces/IVariableDataService.cs b/DMS.WPF/Interfaces/IVariableDataService.cs
index fc1cdb8..6d20a33 100644
--- a/DMS.WPF/Interfaces/IVariableDataService.cs
+++ b/DMS.WPF/Interfaces/IVariableDataService.cs
@@ -1,5 +1,6 @@
using System.Collections.ObjectModel;
using DMS.Application.DTOs;
+using DMS.Core.Models;
using DMS.WPF.ItemViewModel;
namespace DMS.WPF.Interfaces;
@@ -18,7 +19,7 @@ public interface IVariableDataService
///
/// 添加变量表。
///
- Task AddVariableTableToView(VariableTableDto tableDto);
+ Task AddVariableTableToView(VariableTable tableDto);
///
/// 更新变量表。
diff --git a/DMS.WPF/Interfaces/IVariableTableDataService.cs b/DMS.WPF/Interfaces/IVariableTableDataService.cs
index 7daf229..a4f7a87 100644
--- a/DMS.WPF/Interfaces/IVariableTableDataService.cs
+++ b/DMS.WPF/Interfaces/IVariableTableDataService.cs
@@ -1,5 +1,6 @@
using System.Collections.ObjectModel;
using DMS.Application.DTOs;
+using DMS.Core.Models;
using DMS.WPF.ItemViewModel;
namespace DMS.WPF.Interfaces;
@@ -9,7 +10,7 @@ public interface IVariableTableDataService
void LoadAllVariableTables();
- Task AddVariableTable(VariableTableDto variableTableDto,
+ Task AddVariableTable(VariableTable variableTable,
MenuBeanDto menuDto = null, bool isAddDb = false);
Task UpdateVariableTable(VariableTableItem variableTable);
diff --git a/DMS.WPF/ItemViewModel/VariableItem.cs b/DMS.WPF/ItemViewModel/VariableItem.cs
index c7d78bc..d252088 100644
--- a/DMS.WPF/ItemViewModel/VariableItem.cs
+++ b/DMS.WPF/ItemViewModel/VariableItem.cs
@@ -4,6 +4,7 @@ using DMS.Core.Enums;
using System;
using System.Collections.Generic;
using DMS.Application.Configurations;
+using DMS.Core.Models;
using Microsoft.Extensions.DependencyInjection;
namespace DMS.WPF.ItemViewModel;
@@ -98,7 +99,7 @@ public partial class VariableItem : ObservableObject
/// 用于在界面上显示变量表的关联信息。
///
[ObservableProperty]
- private VariableTableDto? _variableTable;
+ private VariableTable _variableTable;
///
/// 获取或设置与此变量关联的MQTT别名列表。
@@ -250,7 +251,7 @@ public partial class VariableItem : ObservableObject
///
/// 检查死区报警和布尔值变化报警
///
- public void CheckAdvancedAlarms(VariableDto variable)
+ public void CheckAdvancedAlarms(Variable variable)
{
// 检查死区报警
if (variable.IsAlarmEnabled && variable.AlarmDeadband > 0)
diff --git a/DMS.WPF/Profiles/MappingProfile.cs b/DMS.WPF/Profiles/MappingProfile.cs
index e202d03..5b076dd 100644
--- a/DMS.WPF/Profiles/MappingProfile.cs
+++ b/DMS.WPF/Profiles/MappingProfile.cs
@@ -11,10 +11,12 @@ namespace DMS.WPF.Profiles
{
public MappingProfile()
{
- CreateMap()
+ CreateMap()
.ReverseMap();
CreateMap()
.ReverseMap();
+ CreateMap()
+ .ReverseMap();
CreateMap()
.ReverseMap();
CreateMap();
@@ -29,9 +31,8 @@ namespace DMS.WPF.Profiles
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
- CreateMap()
+ CreateMap()
.ReverseMap();
- CreateMap().ReverseMap();
CreateMap().ReverseMap();
}
}
diff --git a/DMS.WPF/Services/DeviceDataService.cs b/DMS.WPF/Services/DeviceDataService.cs
index 741c48e..1e82e0b 100644
--- a/DMS.WPF/Services/DeviceDataService.cs
+++ b/DMS.WPF/Services/DeviceDataService.cs
@@ -82,9 +82,9 @@ public class DeviceDataService : IDeviceDataService
///
public void LoadAllDevices()
{
- foreach (var deviceDto in _appDataStorageService.Devices.Values)
+ foreach (var device in _appDataStorageService.Devices.Values)
{
- _dataStorageService.Devices.Add(deviceDto.Id, _mapper.Map(deviceDto));
+ _dataStorageService.Devices.Add(device.Id, _mapper.Map(device));
}
}
@@ -171,13 +171,13 @@ public class DeviceDataService : IDeviceDataService
///
public async Task UpdateDevice(DeviceItem device)
{
- if (!_appDataStorageService.Devices.TryGetValue(device.Id, out var deviceDto))
+ if (!_appDataStorageService.Devices.TryGetValue(device.Id, out var existingDevice))
{
return false;
}
- _mapper.Map(device, deviceDto);
- if (await _appDataCenterService.DeviceManagementService.UpdateDeviceAsync(deviceDto) > 0)
+ _mapper.Map(device, existingDevice);
+ if (await _appDataCenterService.DeviceManagementService.UpdateDeviceAsync(existingDevice) > 0)
{
// 更新数据库后会自动更新内存,无需额外操作
return true;
diff --git a/DMS.WPF/Services/VariableDataService.cs b/DMS.WPF/Services/VariableDataService.cs
index 9168e7f..f45d017 100644
--- a/DMS.WPF/Services/VariableDataService.cs
+++ b/DMS.WPF/Services/VariableDataService.cs
@@ -56,7 +56,7 @@ public class VariableDataService : IVariableDataService
///
/// 添加变量表。
///
- public async Task AddVariableTableToView(VariableTableDto tableDto)
+ public async Task AddVariableTableToView(VariableTable tableDto)
{
// 添加null检查
if (tableDto == null || tableDto.DeviceId==0)
@@ -76,15 +76,15 @@ public class VariableDataService : IVariableDataService
///
/// 更新变量表。
///
- public async Task UpdateVariableTable(VariableTableItem variableTable)
+ public async Task UpdateVariableTable(VariableTableItem variableTableItem)
{
- if (variableTable == null)
+ if (variableTableItem is null)
{
return false;
}
- var variableTableDto = _mapper.Map(variableTable);
- if (await _appDataCenterService.VariableTableManagementService.UpdateVariableTableAsync(variableTableDto) > 0)
+ var variableTable = _mapper.Map(variableTableItem);
+ if (await _appDataCenterService.VariableTableManagementService.UpdateVariableTableAsync(variableTable) > 0)
{
// 更新数据库后会自动更新内存,无需额外操作
return true;
diff --git a/DMS.WPF/Services/VariableTableDataService.cs b/DMS.WPF/Services/VariableTableDataService.cs
index 7082066..aa97a04 100644
--- a/DMS.WPF/Services/VariableTableDataService.cs
+++ b/DMS.WPF/Services/VariableTableDataService.cs
@@ -3,6 +3,7 @@ using AutoMapper;
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Core.Enums;
+using DMS.Core.Models;
using DMS.WPF.Interfaces;
using DMS.WPF.ItemViewModel;
@@ -38,17 +39,17 @@ public class VariableTableDataService : IVariableTableDataService
}
}
- public async Task AddVariableTable(VariableTableDto variableTableDto,
+ public async Task AddVariableTable(VariableTable variableTable,
MenuBeanDto menuDto = null, bool isAddDb = false)
{
- if (variableTableDto == null)
+ if (variableTable == null)
return 0;
if (isAddDb && menuDto != null)
{
CreateVariableTableWithMenuDto createDto = new CreateVariableTableWithMenuDto();
- createDto.VariableTable = variableTableDto;
- createDto.DeviceId = variableTableDto.DeviceId;
+ createDto.VariableTable = variableTable;
+ createDto.DeviceId = variableTable.DeviceId;
createDto.Menu = menuDto;
var resDto = await _appDataCenterService.VariableTableManagementService.CreateVariableTableAsync(createDto);
@@ -69,8 +70,8 @@ public class VariableTableDataService : IVariableTableDataService
return false;
}
- var variableTableDto = _mapper.Map(variableTable);
- if (await _appDataCenterService.VariableTableManagementService.UpdateVariableTableAsync(variableTableDto) > 0)
+ var variableTable_mapped = _mapper.Map(variableTable);
+ if (await _appDataCenterService.VariableTableManagementService.UpdateVariableTableAsync(variableTable_mapped) > 0)
{
// 更新数据库后会自动更新内存,无需额外操作
diff --git a/DMS.WPF/ViewModels/DeviceDetailViewModel.cs b/DMS.WPF/ViewModels/DeviceDetailViewModel.cs
index 179ceb1..3286887 100644
--- a/DMS.WPF/ViewModels/DeviceDetailViewModel.cs
+++ b/DMS.WPF/ViewModels/DeviceDetailViewModel.cs
@@ -75,7 +75,7 @@ public partial class DeviceDetailViewModel : ViewModelBase
TargetViewKey = nameof(VariableTableViewModel)
};
int addVarTableId = await _wpfDataService.VariableTableDataService.AddVariableTable(
- _mapper.Map(VariableTableItem),
+ _mapper.Map(VariableTableItem),
tableMenu, true);
if (addVarTableId > 0)
diff --git a/DMS.WPF/ViewModels/DevicesViewModel.cs b/DMS.WPF/ViewModels/DevicesViewModel.cs
index 3b9d130..4be9869 100644
--- a/DMS.WPF/ViewModels/DevicesViewModel.cs
+++ b/DMS.WPF/ViewModels/DevicesViewModel.cs
@@ -95,7 +95,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
// 添加null检查
if (_mapper != null)
{
- dto.Device = _mapper.Map(device);
+ dto.Device = _mapper.Map(device);
}
else
{
@@ -113,7 +113,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
if (device.IsAddDefVarTable)
{
- dto.VariableTable = new VariableTableDto()
+ dto.VariableTable = new VariableTable()
{
Name = "默认变量表",
Description = "默认变量表",
@@ -273,7 +273,7 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
TargetViewKey = nameof(VariableTableViewModel)
};
int addVarTableId = await _wpfDataService.VariableTableDataService.AddVariableTable(
- _mapper.Map(VariableTableItem),
+ _mapper.Map(VariableTableItem),
tableMenu, true);
if (addVarTableId > 0)
diff --git a/DMS.WPF/ViewModels/VariableTableViewModel.cs b/DMS.WPF/ViewModels/VariableTableViewModel.cs
index ae1cdb4..28b4a3a 100644
--- a/DMS.WPF/ViewModels/VariableTableViewModel.cs
+++ b/DMS.WPF/ViewModels/VariableTableViewModel.cs
@@ -208,7 +208,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
editedVariable.UpdatedAt = DateTime.Now;
// 更新数据库中的变量数据
- var updateResult = await _variableManagementService.UpdateVariableAsync(_mapper.Map(editedVariable));
+ var updateResult = await _variableManagementService.UpdateVariableAsync(_mapper.Map(editedVariable));
if (updateResult > 0)
@@ -245,7 +245,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
if (improtVariable == null || improtVariable.Count == 0) return;
- var improtVariableDtos = _mapper.Map>(improtVariable);
+ var improtVariableDtos = _mapper.Map>(improtVariable);
foreach (var variableDto in improtVariableDtos)
{
variableDto.IsActive = true;
@@ -331,7 +331,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 将导入的变量转换为DTO并设置必要的属性
- var importedVariableDtos = _mapper.Map>(importedVariables);
+ var importedVariableDtos = _mapper.Map>(importedVariables);
foreach (var variableDto in importedVariableDtos)
{
variableDto.CreatedAt = DateTime.Now;
@@ -420,7 +420,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// // 添加变量数据到数据库
var addVariable
- = await _variableManagementService.CreateVariableAsync(_mapper.Map(variableItemViewModel));
+ = await _variableManagementService.CreateVariableAsync(_mapper.Map(variableItemViewModel));
_mapper.Map(addVariable, variableItemViewModel);
// // 更新当前页面显示的数据:将新变量添加到集合中
_variableItemList.Add(variableItemViewModel);
@@ -526,7 +526,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 批量更新数据库中的变量数据
- var variableDtos = _mapper.Map>(validVariables);
+ var variableDtos = _mapper.Map>(validVariables);
var result = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (result > 0)
@@ -568,7 +568,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 批量更新数据库中的变量数据
- var variableDtos = _mapper.Map>(validVariables);
+ var variableDtos = _mapper.Map>(validVariables);
var result = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (result > 0)
@@ -720,7 +720,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 批量更新数据库中的变量数据
- var variableDtos = _mapper.Map>(validVariables);
+ var variableDtos = _mapper.Map>(validVariables);
var result = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (result > 0)
@@ -800,7 +800,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 批量更新数据库中的变量数据
- var variableDtos = _mapper.Map>(validVariables);
+ var variableDtos = _mapper.Map>(validVariables);
var updateResult = await _variableManagementService.UpdateVariablesAsync(variableDtos);
@@ -855,7 +855,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 批量更新数据库中的变量数据
- var variableDtos = _mapper.Map>(validVariables);
+ var variableDtos = _mapper.Map>(validVariables);
var updateResult = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (updateResult > 0)