修改了触发器的问题
This commit is contained in:
@@ -21,7 +21,7 @@ namespace DMS.Application.Services.Triggers
|
||||
/// </summary>
|
||||
/// <param name="id">触发器 ID</param>
|
||||
/// <returns>触发器定义 DTO,如果未找到则返回 null</returns>
|
||||
Task<TriggerDefinitionDto?> GetTriggerByIdAsync(Guid id);
|
||||
Task<TriggerDefinitionDto?> GetTriggerByIdAsync(int id);
|
||||
|
||||
/// <summary>
|
||||
/// 创建一个新的触发器定义
|
||||
@@ -36,20 +36,20 @@ namespace DMS.Application.Services.Triggers
|
||||
/// <param name="id">要更新的触发器 ID</param>
|
||||
/// <param name="triggerDto">包含更新信息的触发器定义 DTO</param>
|
||||
/// <returns>更新后的触发器定义 DTO,如果未找到则返回 null</returns>
|
||||
Task<TriggerDefinitionDto?> UpdateTriggerAsync(Guid id, TriggerDefinitionDto triggerDto);
|
||||
Task<TriggerDefinitionDto?> UpdateTriggerAsync(int id, TriggerDefinitionDto triggerDto);
|
||||
|
||||
/// <summary>
|
||||
/// 删除一个触发器定义
|
||||
/// </summary>
|
||||
/// <param name="id">要删除的触发器 ID</param>
|
||||
/// <returns>删除成功返回 true,否则返回 false</returns>
|
||||
Task<bool> DeleteTriggerAsync(Guid id);
|
||||
Task<bool> DeleteTriggerAsync(int id);
|
||||
|
||||
/// <summary>
|
||||
/// 获取与指定变量关联的所有触发器定义
|
||||
/// </summary>
|
||||
/// <param name="variableId">变量 ID</param>
|
||||
/// <returns>该变量关联的触发器定义列表</returns>
|
||||
Task<List<TriggerDefinitionDto>> GetTriggersForVariableAsync(Guid variableId);
|
||||
Task<List<TriggerDefinitionDto>> GetTriggersForVariableAsync(int variableId);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ namespace DMS.Application.Services.Triggers.Impl
|
||||
private readonly ITriggerActionExecutor _actionExecutor;
|
||||
private readonly ILogger<TriggerEvaluationService> _logger; // 使用标准日志接口
|
||||
// 为每个触发器存储抑制定时器
|
||||
private readonly ConcurrentDictionary<Guid, ThreadingTimer> _suppressionTimers = new();
|
||||
private readonly ConcurrentDictionary<int, ThreadingTimer> _suppressionTimers = new();
|
||||
|
||||
public TriggerEvaluationService(
|
||||
ITriggerManagementService triggerManagementService,
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace DMS.Application.Services.Triggers.Impl
|
||||
/// <summary>
|
||||
/// 根据 ID 获取触发器定义
|
||||
/// </summary>
|
||||
public async Task<TriggerDefinitionDto?> GetTriggerByIdAsync(Guid id)
|
||||
public async Task<TriggerDefinitionDto?> GetTriggerByIdAsync(int id)
|
||||
{
|
||||
var trigger = await _repositoryManager.Triggers.GetByIdAsync(id);
|
||||
return trigger != null ? _mapper.Map<TriggerDefinitionDto>(trigger) : null;
|
||||
@@ -64,7 +64,7 @@ namespace DMS.Application.Services.Triggers.Impl
|
||||
/// <summary>
|
||||
/// 更新一个已存在的触发器定义
|
||||
/// </summary>
|
||||
public async Task<TriggerDefinitionDto?> UpdateTriggerAsync(Guid id, TriggerDefinitionDto triggerDto)
|
||||
public async Task<TriggerDefinitionDto?> UpdateTriggerAsync(int id, TriggerDefinitionDto triggerDto)
|
||||
{
|
||||
// 1. 获取现有实体
|
||||
var existingTrigger = await _repositoryManager.Triggers.GetByIdAsync(id);
|
||||
@@ -90,7 +90,7 @@ namespace DMS.Application.Services.Triggers.Impl
|
||||
/// <summary>
|
||||
/// 删除一个触发器定义
|
||||
/// </summary>
|
||||
public async Task<bool> DeleteTriggerAsync(Guid id)
|
||||
public async Task<bool> DeleteTriggerAsync(int id)
|
||||
{
|
||||
return await _repositoryManager.Triggers.DeleteAsync(id);
|
||||
}
|
||||
@@ -98,7 +98,7 @@ namespace DMS.Application.Services.Triggers.Impl
|
||||
/// <summary>
|
||||
/// 获取与指定变量关联的所有触发器定义
|
||||
/// </summary>
|
||||
public async Task<List<TriggerDefinitionDto>> GetTriggersForVariableAsync(Guid variableId)
|
||||
public async Task<List<TriggerDefinitionDto>> GetTriggersForVariableAsync(int variableId)
|
||||
{
|
||||
var triggers = await _repositoryManager.Triggers.GetByVariableIdAsync(variableId);
|
||||
return _mapper.Map<List<TriggerDefinitionDto>>(triggers);
|
||||
|
||||
@@ -83,21 +83,31 @@ public class VariableTableManagementService : IVariableTableManagementService
|
||||
return;
|
||||
|
||||
DeviceDto deviceDto = null;
|
||||
if (_appDataStorageService.Devices.TryGetValue(variableTableDto.DeviceId, out var device))
|
||||
if (_appDataStorageService.Devices != null &&
|
||||
_appDataStorageService.Devices.TryGetValue(variableTableDto.DeviceId, out var device))
|
||||
{
|
||||
deviceDto = device;
|
||||
// 确保VariableTables不为null
|
||||
device.VariableTables ??= new List<VariableTableDto>();
|
||||
if (device.VariableTables == null)
|
||||
device.VariableTables = new List<VariableTableDto>();
|
||||
|
||||
device.VariableTables.Add(variableTableDto);
|
||||
variableTableDto.Device = device;
|
||||
|
||||
// 确保Device属性不为null
|
||||
if (variableTableDto != null)
|
||||
variableTableDto.Device = device;
|
||||
}
|
||||
|
||||
if (_variableTables.TryAdd(variableTableDto.Id, variableTableDto))
|
||||
// 确保_variableTables和variableTableDto不为null
|
||||
if (_variableTables != null && variableTableDto != null)
|
||||
{
|
||||
OnVariableTableChanged?.Invoke(this,new VariableTableChangedEventArgs(
|
||||
DataChangeType.Added,
|
||||
variableTableDto,
|
||||
deviceDto));
|
||||
if (_variableTables.TryAdd(variableTableDto.Id, variableTableDto))
|
||||
{
|
||||
OnVariableTableChanged?.Invoke(this, new VariableTableChangedEventArgs(
|
||||
DataChangeType.Added,
|
||||
variableTableDto,
|
||||
deviceDto));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user