1. 创建了 BatchImportVariablesEventArgs 事件参数类
2. 在 IEventService 接口中添加了 OnBatchImportVariables 事件和 RaiseBatchImportVariables 方法 3. 在 EventService 实现中添加了对新事件的支持 4. 在 IVariableManagementService 接口中添加了 BatchImportVariablesAsync 方法 5. 在 VariableManagementService 中实现了该方法,并在批量导入后触发事件 6. 更新了 VariableTableViewModel 以使用 IVariableManagementService 而不是 IVariableAppService
This commit is contained in:
37
DMS.Application/Events/BatchImportVariablesEventArgs.cs
Normal file
37
DMS.Application/Events/BatchImportVariablesEventArgs.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>
|
||||
/// 变量值改变事件
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user