refactor:将AppDataCenterService改为AppCenterService,将AppDataStorageService改为AppStorageService,将触发器的增删改成合并

This commit is contained in:
2025-10-18 17:18:09 +08:00
parent 816827e5e9
commit 595139fb02
64 changed files with 1159 additions and 599 deletions

View File

@@ -0,0 +1,53 @@
using DMS.Core.Models.Triggers;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace DMS.Application.Interfaces.Database
{
/// <summary>
/// 触发器应用服务接口,负责处理触发器相关的业务逻辑。
/// </summary>
public interface ITriggerAppService
{
/// <summary>
/// 异步根据ID获取触发器定义。
/// </summary>
/// <param name="id">触发器ID。</param>
/// <returns>触发器定义实体。</returns>
Task<TriggerDefinition> GetTriggerByIdAsync(int id);
/// <summary>
/// 异步获取所有触发器定义。
/// </summary>
/// <returns>触发器定义实体列表。</returns>
Task<List<TriggerDefinition>> GetAllTriggersAsync();
/// <summary>
/// 异步创建一个新触发器定义及其关联的变量ID。
/// </summary>
/// <param name="trigger">要创建的触发器定义。</param>
/// <returns>新创建的触发器定义。</returns>
Task<TriggerDefinition> CreateTriggerAsync(TriggerDefinition trigger);
/// <summary>
/// 异步更新一个已存在的触发器定义及其关联的变量ID。
/// </summary>
/// <param name="trigger">要更新的触发器定义。</param>
/// <returns>受影响的行数。</returns>
Task<int> UpdateTriggerAsync(TriggerDefinition trigger);
/// <summary>
/// 异步删除一个触发器定义及其关联的变量关系。
/// </summary>
/// <param name="id">要删除的触发器ID。</param>
/// <returns>如果删除成功则为 true否则为 false。</returns>
Task<bool> DeleteTriggerByIdAsync(int id);
/// <summary>
/// 异步获取指定变量ID关联的所有触发器定义。
/// </summary>
/// <param name="variableId">变量ID。</param>
/// <returns>与指定变量关联的触发器定义实体列表。</returns>
Task<IEnumerable<TriggerDefinition>> GetTriggersByVariableIdAsync(int variableId);
}
}

View File

@@ -0,0 +1,43 @@
using DMS.Core.Models.Triggers;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace DMS.Application.Interfaces.Database;
/// <summary>
/// 定义了触发器与变量关联管理相关的应用服务操作。
/// </summary>
public interface ITriggerVariableAppService
{
/// <summary>
/// 异步为触发器分配或更新一个变量关联。
/// </summary>
/// <param name="triggerVariable"></param>
Task<TriggerVariable> AssignTriggerVariableAsync(TriggerVariable triggerVariable);
/// <summary>
/// 异步更新一个已存在的触发器与变量关联。
/// </summary>
/// <param name="triggerVariable">要更新的触发器与变量关联对象。</param>
Task<int> UpdateTriggerVariableAsync(TriggerVariable triggerVariable);
/// <summary>
/// 异步移除一个触发器与变量关联。
/// </summary>
/// <param name="triggerVariableId">要移除的关联的ID。</param>
Task<int> RemoveTriggerVariableAsync(int triggerVariableId);
/// <summary>
/// 异步获取所有触发器与变量关联。
/// </summary>
Task<List<TriggerVariable>> GetAllAsync();
/// <summary>
/// 批量添加触发器与变量的关联关系
/// </summary>
/// <param name="triggerVariables">触发器与变量的关联列表</param>
/// <returns>异步操作任务</returns>
Task<List<TriggerVariable>> AddTriggerVariablesAsync(List<TriggerVariable> triggerVariables);
}

View File

@@ -10,7 +10,7 @@ namespace DMS.Application.Interfaces;
/// <summary>
/// 定义数据管理相关的应用服务操作,负责管理所有的数据,包括设备、变量表和变量。
/// </summary>
public interface IAppDataCenterService
public interface IAppCenterService
{
ILogManagementService LogManagementService { get; set; }
IMqttManagementService MqttManagementService { get; set; }

View File

@@ -1,10 +1,11 @@
using System.Collections.Concurrent;
using DMS.Application.DTOs;
using DMS.Core.Models;
using DMS.Core.Models.Triggers;
namespace DMS.Application.Interfaces;
public interface IAppDataStorageService
public interface IAppStorageService
{
/// <summary>
/// 安全字典,用于存储所有设备数据
@@ -48,5 +49,10 @@ public interface IAppDataStorageService
/// <summary>
/// 安全字典,用于存储所有触发器定义数据
/// </summary>
ConcurrentDictionary<int, TriggerDefinitionDto> Triggers { get; }
ConcurrentDictionary<int, TriggerDefinition> Triggers { get; }
/// <summary>
/// 安全字典,用于存储所有触发器与变量关联数据
/// </summary>
ConcurrentDictionary<int, TriggerVariable> TriggerVariables { get; }
}

View File

@@ -148,4 +148,20 @@ public interface IEventService
void RaiseMenuChanged(object sender, MenuChangedEventArgs e);
#endregion
#region
/// <summary>
/// 触发器与变量关联改变事件
/// </summary>
event EventHandler<TriggerVariableChangedEventArgs> OnTriggerVariableChanged;
/// <summary>
/// 触发触发器与变量关联改变事件
/// </summary>
/// <param name="sender">事件发送者</param>
/// <param name="e">触发器与变量关联改变事件参数</param>
void RaiseTriggerVariableChanged(object sender, TriggerVariableChangedEventArgs e);
#endregion
}

View File

@@ -1,4 +1,5 @@
using DMS.Application.DTOs;
using DMS.Core.Models.Triggers;
namespace DMS.Application.Interfaces.Management
{
@@ -11,21 +12,21 @@ namespace DMS.Application.Interfaces.Management
/// 获取所有触发器定义
/// </summary>
/// <returns>触发器定义列表</returns>
Task<List<TriggerDefinitionDto>> GetAllTriggersAsync();
List<TriggerDefinition> GetAllTriggersAsync();
/// <summary>
/// 根据 ID 获取触发器定义
/// </summary>
/// <param name="id">触发器 ID</param>
/// <returns>触发器定义 DTO如果未找到则返回 null</returns>
Task<TriggerDefinitionDto?> GetTriggerByIdAsync(int id);
Task<TriggerDefinition> GetTriggerByIdAsync(int id);
/// <summary>
/// 创建一个新的触发器定义
/// </summary>
/// <param name="triggerDto">要创建的触发器定义 DTO</param>
/// <returns>创建成功的触发器定义 DTO</returns>
Task<TriggerDefinitionDto> CreateTriggerAsync(TriggerDefinitionDto triggerDto);
Task<TriggerDefinition> CreateTriggerAsync(TriggerDefinition triggerDto);
/// <summary>
/// 更新一个已存在的触发器定义
@@ -33,7 +34,7 @@ namespace DMS.Application.Interfaces.Management
/// <param name="id">要更新的触发器 ID</param>
/// <param name="triggerDto">包含更新信息的触发器定义 DTO</param>
/// <returns>更新后的触发器定义 DTO如果未找到则返回 null</returns>
Task<TriggerDefinitionDto?> UpdateTriggerAsync(int id, TriggerDefinitionDto triggerDto);
Task<TriggerDefinition?> UpdateTriggerAsync(int id, TriggerDefinition triggerDto);
/// <summary>
/// 删除一个触发器定义
@@ -47,6 +48,6 @@ namespace DMS.Application.Interfaces.Management
/// </summary>
/// <param name="variableId">变量 ID</param>
/// <returns>该变量关联的触发器定义列表</returns>
Task<List<TriggerDefinitionDto>> GetTriggersForVariableAsync(int variableId);
Task<List<TriggerDefinition>> GetTriggersForVariableAsync(int variableId);
}
}

View File

@@ -0,0 +1,41 @@
using DMS.Core.Models.Triggers;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace DMS.Application.Interfaces.Management;
public interface ITriggerVariableManagementService
{
Task<TriggerVariable> AssignTriggerVariableAsync(TriggerVariable triggerVariable);
Task<int> UpdateAsync(TriggerVariable triggerVariable);
Task<bool> DeleteAsync(int id);
Task<List<TriggerVariable>> LoadAllTriggerVariablesAsync();
// /// <summary>
// /// 根据触发器ID获取关联的变量ID列表
// /// </summary>
// /// <param name="triggerId">触发器ID</param>
// /// <returns>变量ID列表</returns>
// Task<List<int>> GetVariableIdsByTriggerIdAsync(int triggerId);
//
// /// <summary>
// /// 根据变量ID获取关联的触发器ID列表
// /// </summary>
// /// <param name="variableId">变量ID</param>
// /// <returns>触发器ID列表</returns>
// Task<List<int>> GetTriggerIdsByVariableIdAsync(int variableId);
/// <summary>
/// 批量添加触发器与变量的关联关系
/// </summary>
/// <param name="triggerVariables">触发器与变量的关联列表</param>
/// <returns>异步操作任务</returns>
Task<List<TriggerVariable>> AddTriggerVariablesAsync(List<TriggerVariable> triggerVariables);
/// <summary>
/// 根据触发器ID删除关联关系
/// </summary>
/// <param name="triggerId">触发器ID</param>
/// <returns>异步操作任务</returns>
Task<bool> DeleteByTriggerIdAsync(int triggerId);
}