diff --git a/DMS.Application/Interfaces/Management/IDeviceManagementService.cs b/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
index 466db7c..54db4a5 100644
--- a/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
+++ b/DMS.Application/Interfaces/Management/IDeviceManagementService.cs
@@ -37,23 +37,7 @@ public interface IDeviceManagementService
///
Task ToggleDeviceActiveStateAsync(int id);
- ///
- /// 在内存中添加设备
- /// 注意:此方法通常由其他操作(如CreateDeviceWithDetailsAsync)自动调用,一般不需要直接调用
- ///
- void AddDeviceToMemory(DeviceDto deviceDto);
-
- ///
- /// 在内存中更新设备
- /// 注意:此方法通常由其他操作(如UpdateDeviceAsync)自动调用,一般不需要直接调用
- ///
- void UpdateDeviceInMemory(DeviceDto deviceDto);
-
- ///
- /// 在内存中删除设备
- /// 注意:此方法通常由其他操作(如DeleteDeviceByIdAsync)自动调用,一般不需要直接调用
- ///
- void RemoveDeviceFromMemory(int deviceId);
+
}
\ No newline at end of file
diff --git a/DMS.Application/Services/Management/DeviceManagementService.cs b/DMS.Application/Services/Management/DeviceManagementService.cs
index 9388a7e..9b8a962 100644
--- a/DMS.Application/Services/Management/DeviceManagementService.cs
+++ b/DMS.Application/Services/Management/DeviceManagementService.cs
@@ -49,7 +49,10 @@ public class DeviceManagementService : IDeviceManagementService
// 创建成功后,将设备添加到内存中
if (result?.Device != null)
{
- AddDeviceToMemory(result.Device);
+ if (_appDataStorageService.Devices.TryAdd(result.Device.Id, result.Device))
+ {
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Added, result.Device));
+ }
}
return result;
@@ -65,7 +68,8 @@ public class DeviceManagementService : IDeviceManagementService
// 更新成功后,更新内存中的设备
if (result > 0 && deviceDto != null)
{
- UpdateDeviceInMemory(deviceDto);
+ _appDataStorageService.Devices.AddOrUpdate(deviceDto.Id, deviceDto, (key, oldValue) => deviceDto);
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, deviceDto));
}
return result;
@@ -82,7 +86,22 @@ public class DeviceManagementService : IDeviceManagementService
// 删除成功后,从内存中移除设备
if (result && device != null)
{
- RemoveDeviceFromMemory(deviceId);
+ if (_appDataStorageService.Devices.TryGetValue(deviceId, out var deviceDto))
+ {
+ foreach (var variableTable in deviceDto.VariableTables)
+ {
+ foreach (var variable in variableTable.Variables)
+ {
+ _appDataStorageService.Variables.TryRemove(variable.Id, out _);
+ }
+
+ _appDataStorageService.VariableTables.TryRemove(variableTable.Id, out _);
+ }
+
+ _appDataStorageService.Devices.TryRemove(deviceId, out _);
+
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Deleted, deviceDto));
+ }
}
return result;
@@ -99,52 +118,12 @@ public class DeviceManagementService : IDeviceManagementService
var device = await _deviceAppService.GetDeviceByIdAsync(id);
if (device != null)
{
- UpdateDeviceInMemory(device);
+ _appDataStorageService.Devices.AddOrUpdate(device.Id, device, (key, oldValue) => device);
+ _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, device));
}
}
- ///
- /// 在内存中添加设备
- ///
- public void AddDeviceToMemory(DeviceDto deviceDto)
- {
- if (_appDataStorageService.Devices.TryAdd(deviceDto.Id, deviceDto))
- {
- _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Added, deviceDto));
- }
- }
-
- ///
- /// 在内存中更新设备
- ///
- public void UpdateDeviceInMemory(DeviceDto deviceDto)
- {
- _appDataStorageService.Devices.AddOrUpdate(deviceDto.Id, deviceDto, (key, oldValue) => deviceDto);
- _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, deviceDto));
- }
-
- ///
- /// 在内存中删除设备
- ///
- public void RemoveDeviceFromMemory(int deviceId)
- {
- if (_appDataStorageService.Devices.TryGetValue(deviceId, out var deviceDto))
- {
- foreach (var variableTable in deviceDto.VariableTables)
- {
- foreach (var variable in variableTable.Variables)
- {
- _appDataStorageService.Variables.TryRemove(variable.Id, out _);
- }
-
- _appDataStorageService.VariableTables.TryRemove(variableTable.Id, out _);
- }
-
- _appDataStorageService.Devices.TryRemove(deviceId, out _);
-
- _eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Deleted, deviceDto));
- }
- }
+
}
\ No newline at end of file