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}">