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

@@ -6,6 +6,7 @@ using DMS.Core.Models;
using DMS.WPF.Interfaces;
using DMS.WPF.ViewModels.Items;
using System.Collections.ObjectModel;
using DMS.Application.Services.Management;
namespace DMS.WPF.Services;
@@ -30,6 +31,12 @@ public class VariableDataService : IVariableDataService
_mapper = mapper;
_dataStorageService = dataStorageService;
_appDataCenterService = appDataCenterService;
// 订阅批量导入变量事件
if (_appDataCenterService.VariableManagementService is VariableManagementService variableManagementService)
{
// 如果需要直接订阅事件这将需要EventService实例
}
}
/// <summary>

View File

@@ -5,6 +5,7 @@ using CommunityToolkit.Mvvm.Input;
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Application.Interfaces.Management;
using DMS.Core.Enums;
using DMS.Core.Events;
using DMS.Core.Models;
@@ -25,7 +26,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
/// </summary>
private readonly IDialogService _dialogService;
private readonly IVariableAppService _variableAppService;
private readonly IVariableManagementService _variableManagementService;
private readonly IEventService _eventService;
private readonly IMqttAliasAppService _mqttAliasAppService;
private readonly IMqttAppService _mqttAppService;
@@ -92,7 +93,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
private readonly INotificationService _notificationService;
public VariableTableViewModel(IMapper mapper, IDialogService dialogService, IVariableAppService variableAppService,
public VariableTableViewModel(IMapper mapper, IDialogService dialogService, IVariableManagementService variableManagementService,
IEventService eventService,
IMqttAliasAppService mqttAliasAppService, IMqttAppService mqttAppService,
IWPFDataService wpfDataService, IDataStorageService dataStorageService,
@@ -100,7 +101,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
{
_mapper = mapper;
_dialogService = dialogService;
_variableAppService = variableAppService;
_variableManagementService = variableManagementService;
_eventService = eventService;
_mqttAliasAppService = mqttAliasAppService;
_mqttAppService = mqttAppService;
@@ -207,7 +208,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
editedVariable.UpdatedAt = DateTime.Now;
// 更新数据库中的变量数据
var updateResult = await _variableAppService.UpdateVariableAsync(_mapper.Map<VariableDto>(editedVariable));
var updateResult = await _variableManagementService.UpdateVariableAsync(_mapper.Map<VariableDto>(editedVariable));
if (updateResult > 0)
@@ -253,7 +254,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
variableDto.VariableTableId = CurrentVariableTable.Id;
}
var existList = await _variableAppService.FindExistingVariablesAsync(improtVariableDtos);
var existList = await _variableManagementService.FindExistingVariablesAsync(improtVariableDtos);
if (existList.Count > 0)
{
// // 拼接要删除的变量名称,用于确认提示
@@ -268,7 +269,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
if (improtVariableDtos.Count != 0)
{
var addVariableDtos = await _variableAppService.BatchImportVariablesAsync(improtVariableDtos);
var addVariableDtos = await _variableManagementService.BatchImportVariablesAsync(improtVariableDtos);
if (addVariableDtos is { Count: > 0 })
{
List<VariableItemViewModel> variableItemViewModels = _mapper.Map<List<VariableItemViewModel>>(addVariableDtos);
@@ -337,7 +338,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
}
// 检查是否存在同名变量
var existList = await _variableAppService.FindExistingVariablesAsync(importedVariableDtos);
var existList = await _variableManagementService.FindExistingVariablesAsync(importedVariableDtos);
if (existList.Count > 0)
{
// 拼接要删除的变量名称,用于确认提示
@@ -353,7 +354,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 如果还有变量需要导入,则执行导入操作
if (importedVariableDtos.Count != 0)
{
var addVariableDtos = await _variableAppService.BatchImportVariablesAsync(importedVariableDtos);
var addVariableDtos = await _variableManagementService.BatchImportVariablesAsync(importedVariableDtos);
if (addVariableDtos is { Count: > 0 })
{
List<VariableItemViewModel> variableItemViewModels = _mapper.Map<List<VariableItemViewModel>>(addVariableDtos);
@@ -415,7 +416,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// // 添加变量数据到数据库
var addVariable
= await _variableAppService.CreateVariableAsync(_mapper.Map<VariableDto>(variableItemViewModel));
= await _variableManagementService.CreateVariableAsync(_mapper.Map<VariableDto>(variableItemViewModel));
_mapper.Map(addVariable, variableItemViewModel);
// // 更新当前页面显示的数据:将新变量添加到集合中
_variableItemList.Add(variableItemViewModel);
@@ -462,7 +463,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
return; // 如果用户取消删除,则返回
// 从数据库中删除变量数据
var result = await _variableAppService.DeleteVariablesAsync(variablesToDelete.Select(v => v.Id)
var result = await _variableManagementService.DeleteVariablesAsync(variablesToDelete.Select(v => v.Id)
.ToList());
if (result)
{
@@ -522,7 +523,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 批量更新数据库中的变量数据
var variableDtos = _mapper.Map<List<VariableDto>>(validVariables);
var result = await _variableAppService.UpdateVariablesAsync(variableDtos);
var result = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (result > 0)
{
@@ -673,7 +674,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 批量更新数据库中的变量数据
var variableDtos = _mapper.Map<List<VariableDto>>(validVariables);
var result = await _variableAppService.UpdateVariablesAsync(variableDtos);
var result = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (result > 0)
{
@@ -737,7 +738,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 批量更新数据库中的变量数据
var variableDtos = _mapper.Map<List<VariableDto>>(validVariables);
var updateResult = await _variableAppService.UpdateVariablesAsync(variableDtos);
var updateResult = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (updateResult > 0)
@@ -792,7 +793,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
// 批量更新数据库中的变量数据
var variableDtos = _mapper.Map<List<VariableDto>>(validVariables);
var updateResult = await _variableAppService.UpdateVariablesAsync(variableDtos);
var updateResult = await _variableManagementService.UpdateVariablesAsync(variableDtos);
if (updateResult > 0)
{