From f9e094ffbdb9c8da155944ee892a64da5b228453 Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Sun, 24 Aug 2025 15:08:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8F=98=E9=87=8F=E8=A1=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interfaces/IVariableAppService.cs | 2 +- .../Services/VariableAppService.cs | 6 ++--- DMS.WPF/Services/DataServices.cs | 23 ++++++++++++++++--- DMS.WPF/ViewModels/VariableTableViewModel.cs | 22 +++++++++--------- DMS.WPF/Views/Dialogs/VariableDialog.xaml | 1 + 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/DMS.Application/Interfaces/IVariableAppService.cs b/DMS.Application/Interfaces/IVariableAppService.cs index 398a79a..b33f131 100644 --- a/DMS.Application/Interfaces/IVariableAppService.cs +++ b/DMS.Application/Interfaces/IVariableAppService.cs @@ -20,7 +20,7 @@ public interface IVariableAppService /// /// 异步创建一个新变量。 /// - Task CreateVariableAsync(VariableDto variableDto); + Task CreateVariableAsync(VariableDto variableDto); /// /// 异步更新一个已存在的变量。 diff --git a/DMS.Application/Services/VariableAppService.cs b/DMS.Application/Services/VariableAppService.cs index deb73b1..72ed38c 100644 --- a/DMS.Application/Services/VariableAppService.cs +++ b/DMS.Application/Services/VariableAppService.cs @@ -53,9 +53,9 @@ public class VariableAppService : IVariableAppService /// 异步创建一个新变量(事务性操作)。 /// /// 要创建的变量数据传输对象。 - /// 新创建变量的ID。 + /// 新创建的变量数据传输对象。 /// 如果创建变量时发生错误。 - public async Task CreateVariableAsync(VariableDto variableDto) + public async Task CreateVariableAsync(VariableDto variableDto) { try { @@ -63,7 +63,7 @@ public class VariableAppService : IVariableAppService var variable = _mapper.Map(variableDto); var addedVariable = await _repoManager.Variables.AddAsync(variable); await _repoManager.CommitAsync(); - return addedVariable.Id; + return _mapper.Map(addedVariable); } catch (Exception ex) { diff --git a/DMS.WPF/Services/DataServices.cs b/DMS.WPF/Services/DataServices.cs index 66fb517..603a74e 100644 --- a/DMS.WPF/Services/DataServices.cs +++ b/DMS.WPF/Services/DataServices.cs @@ -1,19 +1,20 @@ -using System.Collections.Concurrent; -using System.Collections.ObjectModel; using AutoMapper; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Messaging; using DMS.Application.DTOs; using DMS.Application.Interfaces; -using DMS.Core.Helper; using DMS.Core.Enums; +using DMS.Core.Helper; using DMS.Core.Models; using DMS.Helper; +using DMS.Infrastructure.Entities; using DMS.Message; using DMS.WPF.Helper; using DMS.WPF.ViewModels.Items; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using System.Collections.Concurrent; +using System.Collections.ObjectModel; namespace DMS.WPF.Services; @@ -497,6 +498,22 @@ public partial class DataServices : ObservableRecipient, IRecipient } } + public void AddVariable(VariableItemViewModel variableItem) + { + if (variableItem==null) + { + return; + } + + var variableTable = VariableTables.FirstOrDefault(d => d.Id == variableItem.VariableTableId); + if (variableTable != null) + { + variableTable.Variables.Add(variableItem); + Variables.Add(variableItem); + } + + } + public void DeleteMenuItem(MenuItemViewModel menuItemViewModel) { if (menuItemViewModel == null) diff --git a/DMS.WPF/ViewModels/VariableTableViewModel.cs b/DMS.WPF/ViewModels/VariableTableViewModel.cs index f391521..ad387c2 100644 --- a/DMS.WPF/ViewModels/VariableTableViewModel.cs +++ b/DMS.WPF/ViewModels/VariableTableViewModel.cs @@ -493,8 +493,11 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable { // 显示添加变量数据的对话框 VariableDialogViewModel variableDialogViewModel=App.Current.Services.GetRequiredService(); + VariableItemViewModel variableItem=new VariableItemViewModel(); + variableItem.Protocol=CurrentVariableTable.Protocol; variableDialogViewModel.Title = "添加变量"; variableDialogViewModel.PrimaryButText = "添加变量"; + variableDialogViewModel.Variable = variableItem; var variableItemViewModel = await _dialogService.ShowDialogAsync(variableDialogViewModel); @@ -504,22 +507,19 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable // // 设置新变量的所属变量表ID variableItemViewModel.VariableTableId = CurrentVariableTable.Id; + variableItemViewModel.CreatedAt = DateTime.Now; + variableItemViewModel.UpdatedAt = DateTime.Now; + - - // // // 添加变量数据到数据库 - // var resVarData = await _varDataRepository.AddAsync(varData); - // if (resVarData == null) - // { - // NotificationHelper.ShowError($"添加变量失败了:{varData?.Name}"); - // return; - // } - // + var addVariable= await _variableAppService.CreateVariableAsync(_mapper.Map(variableItemViewModel)); + _mapper.Map(addVariable, variableItemViewModel); // // 更新当前页面显示的数据:将新变量添加到集合中 - // Variables.Add(resVarData); + _variableItemList.Add(variableItemViewModel); + _dataServices.AddVariable(variableItemViewModel); // // // 显示成功通知 - // NotificationHelper.ShowSuccess($"添加变量成功:{varData?.Name}"); + NotificationHelper.ShowSuccess($"添加变量成功:{variableItemViewModel.Name}"); } catch (Exception e) { diff --git a/DMS.WPF/Views/Dialogs/VariableDialog.xaml b/DMS.WPF/Views/Dialogs/VariableDialog.xaml index c76aad8..5e4dac0 100644 --- a/DMS.WPF/Views/Dialogs/VariableDialog.xaml +++ b/DMS.WPF/Views/Dialogs/VariableDialog.xaml @@ -119,6 +119,7 @@ Grid.Column="0" Margin="0,15,0,0" hc:InfoElement.Title="协议类型:" + IsEnabled="False" ItemsSource="{Binding Source={StaticResource ProtocolType}}" SelectedItem="{Binding Variable.Protocol, UpdateSourceTrigger=PropertyChanged}">