1. 已成功将内存操作直接合并到数据库操作方法中

2. 已删除了独立的内存操作方法
   3. 已更新接口定义,去除了内存操作方法
   4. 保留了 IEventService 依赖,因为需要用于触发事件
This commit is contained in:
2025-10-01 19:06:12 +08:00
parent e84a202438
commit 438ee0fe58
2 changed files with 26 additions and 63 deletions

View File

@@ -37,23 +37,7 @@ public interface IDeviceManagementService
/// </summary>
Task ToggleDeviceActiveStateAsync(int id);
/// <summary>
/// 在内存中添加设备
/// 注意此方法通常由其他操作如CreateDeviceWithDetailsAsync自动调用一般不需要直接调用
/// </summary>
void AddDeviceToMemory(DeviceDto deviceDto);
/// <summary>
/// 在内存中更新设备
/// 注意此方法通常由其他操作如UpdateDeviceAsync自动调用一般不需要直接调用
/// </summary>
void UpdateDeviceInMemory(DeviceDto deviceDto);
/// <summary>
/// 在内存中删除设备
/// 注意此方法通常由其他操作如DeleteDeviceByIdAsync自动调用一般不需要直接调用
/// </summary>
void RemoveDeviceFromMemory(int deviceId);
}

View File

@@ -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;
@@ -81,52 +85,6 @@ public class DeviceManagementService : IDeviceManagementService
// 删除成功后,从内存中移除设备
if (result && device != null)
{
RemoveDeviceFromMemory(deviceId);
}
return result;
}
/// <summary>
/// 异步切换设备的激活状态。
/// </summary>
public async Task ToggleDeviceActiveStateAsync(int id)
{
await _deviceAppService.ToggleDeviceActiveStateAsync(id);
// 更新内存中的设备状态
var device = await _deviceAppService.GetDeviceByIdAsync(id);
if (device != null)
{
UpdateDeviceInMemory(device);
}
}
/// <summary>
/// 在内存中添加设备
/// </summary>
public void AddDeviceToMemory(DeviceDto deviceDto)
{
if (_appDataStorageService.Devices.TryAdd(deviceDto.Id, deviceDto))
{
_eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Added, deviceDto));
}
}
/// <summary>
/// 在内存中更新设备
/// </summary>
public void UpdateDeviceInMemory(DeviceDto deviceDto)
{
_appDataStorageService.Devices.AddOrUpdate(deviceDto.Id, deviceDto, (key, oldValue) => deviceDto);
_eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, deviceDto));
}
/// <summary>
/// 在内存中删除设备
/// </summary>
public void RemoveDeviceFromMemory(int deviceId)
{
if (_appDataStorageService.Devices.TryGetValue(deviceId, out var deviceDto))
{
@@ -146,5 +104,26 @@ public class DeviceManagementService : IDeviceManagementService
}
}
return result;
}
/// <summary>
/// 异步切换设备的激活状态。
/// </summary>
public async Task ToggleDeviceActiveStateAsync(int id)
{
await _deviceAppService.ToggleDeviceActiveStateAsync(id);
// 更新内存中的设备状态
var device = await _deviceAppService.GetDeviceByIdAsync(id);
if (device != null)
{
_appDataStorageService.Devices.AddOrUpdate(device.Id, device, (key, oldValue) => device);
_eventService.RaiseDeviceChanged(this, new DeviceChangedEventArgs(DataChangeType.Updated, device));
}
}
}