From 438ee0fe58542ad25bc16be63ac5c841013aa95c Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Wed, 1 Oct 2025 19:06:12 +0800 Subject: [PATCH] =?UTF-8?q?=201.=20=E5=B7=B2=E6=88=90=E5=8A=9F=E5=B0=86?= =?UTF-8?q?=E5=86=85=E5=AD=98=E6=93=8D=E4=BD=9C=E7=9B=B4=E6=8E=A5=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=B8=AD=20=20=20=202.=20=E5=B7=B2=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BA=86=E7=8B=AC=E7=AB=8B=E7=9A=84=E5=86=85=E5=AD=98?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=96=B9=E6=B3=95=20=20=20=203.=20=E5=B7=B2?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3=E5=AE=9A=E4=B9=89=EF=BC=8C?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E4=BA=86=E5=86=85=E5=AD=98=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20=20=20=204.=20=E4=BF=9D=E7=95=99=E4=BA=86?= =?UTF-8?q?=20IEventService=20=E4=BE=9D=E8=B5=96=EF=BC=8C=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E9=9C=80=E8=A6=81=E7=94=A8=E4=BA=8E=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Management/IDeviceManagementService.cs | 18 +---- .../Management/DeviceManagementService.cs | 71 +++++++------------ 2 files changed, 26 insertions(+), 63 deletions(-) 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