1. 创建了 BatchImportVariablesEventArgs 事件参数类

2. 在 IEventService 接口中添加了 OnBatchImportVariables 事件和 RaiseBatchImportVariables 方法
   3. 在 EventService 实现中添加了对新事件的支持
   4. 在 IVariableManagementService 接口中添加了 BatchImportVariablesAsync 方法
   5. 在 VariableManagementService 中实现了该方法,并在批量导入后触发事件
   6. 更新了 VariableTableViewModel 以使用 IVariableManagementService 而不是 IVariableAppService
This commit is contained in:
2025-10-01 20:13:30 +08:00
parent 4e63ebcb94
commit 078d7b3903
7 changed files with 117 additions and 14 deletions

View File

@@ -0,0 +1,37 @@
using DMS.Application.DTOs;
using DMS.Core.Enums;
namespace DMS.Application.Events
{
/// <summary>
/// 批量导入变量事件参数
/// </summary>
public class BatchImportVariablesEventArgs : System.EventArgs
{
/// <summary>
/// 导入的变量列表
/// </summary>
public List<VariableDto> Variables { get; }
/// <summary>
/// 导入的变量数量
/// </summary>
public int Count { get; }
/// <summary>
/// 变更时间
/// </summary>
public DateTime ChangeTime { get; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="variables">导入的变量列表</param>
public BatchImportVariablesEventArgs(List<VariableDto> variables)
{
Variables = variables ?? new List<VariableDto>();
Count = Variables.Count;
ChangeTime = DateTime.Now;
}
}
}

View File

@@ -97,6 +97,18 @@ public interface IEventService
void RaiseVariableActiveChanged(object sender,VariablesActiveChangedEventArgs e);
/// <summary>
/// 批量导入变量事件
/// </summary>
event EventHandler<BatchImportVariablesEventArgs> OnBatchImportVariables;
/// <summary>
/// 触发批量导入变量事件
/// </summary>
/// <param name="sender">事件发送者</param>
/// <param name="e">批量导入变量事件参数</param>
void RaiseBatchImportVariables(object sender, BatchImportVariablesEventArgs e);
/// <summary>
/// 变量启停改变事件
/// </summary>

View File

@@ -39,4 +39,14 @@ public interface IVariableManagementService
/// 异步批量删除变量。
/// </summary>
Task<bool> DeleteVariablesAsync(List<int> ids);
/// <summary>
/// 异步批量导入变量。
/// </summary>
Task<List<VariableDto>> BatchImportVariablesAsync(List<VariableDto> variables);
/// <summary>
/// 查找已存在的变量。
/// </summary>
Task<List<VariableDto>> FindExistingVariablesAsync(IEnumerable<VariableDto> variablesToCheck);
}

View File

@@ -124,6 +124,21 @@ public class EventService : IEventService
OnVariableActiveChanged?.Invoke(sender, e);
}
/// <summary>
/// 批量导入变量事件
/// </summary>
public event EventHandler<BatchImportVariablesEventArgs> OnBatchImportVariables;
/// <summary>
/// 触发批量导入变量事件
/// </summary>
/// <param name="sender">事件发送者</param>
/// <param name="e">批量导入变量事件参数</param>
public void RaiseBatchImportVariables(object sender, BatchImportVariablesEventArgs e)
{
OnBatchImportVariables?.Invoke(sender, e);
}
/// <summary>
/// 变量值改变事件

View File

@@ -153,6 +153,27 @@ public class VariableManagementService : IVariableManagementService
return result;
}
/// <summary>
/// 异步批量导入变量。
/// </summary>
public async Task<List<VariableDto>> BatchImportVariablesAsync(List<VariableDto> variables)
{
var result = await _variableAppService.BatchImportVariablesAsync(variables);
// 批量导入成功后,触发批量导入事件
if (result != null && result.Any())
{
_eventService.RaiseBatchImportVariables(this, new BatchImportVariablesEventArgs(result));
}
return result;
}
public async Task<List<VariableDto>> FindExistingVariablesAsync(IEnumerable<VariableDto> variablesToCheck)
{
return await _variableAppService.FindExistingVariablesAsync(variablesToCheck);
}
/// <summary>
/// 异步批量删除变量。
/// </summary>