完成变量表添加变量

This commit is contained in:
2025-08-24 15:08:13 +08:00
parent 3dee207b88
commit f9e094ffbd
5 changed files with 36 additions and 18 deletions

View File

@@ -20,7 +20,7 @@ public interface IVariableAppService
/// <summary>
/// 异步创建一个新变量。
/// </summary>
Task<int> CreateVariableAsync(VariableDto variableDto);
Task<VariableDto> CreateVariableAsync(VariableDto variableDto);
/// <summary>
/// 异步更新一个已存在的变量。

View File

@@ -53,9 +53,9 @@ public class VariableAppService : IVariableAppService
/// 异步创建一个新变量(事务性操作)。
/// </summary>
/// <param name="variableDto">要创建的变量数据传输对象。</param>
/// <returns>新创建变量的ID。</returns>
/// <returns>新创建变量数据传输对象。</returns>
/// <exception cref="ApplicationException">如果创建变量时发生错误。</exception>
public async Task<int> CreateVariableAsync(VariableDto variableDto)
public async Task<VariableDto> CreateVariableAsync(VariableDto variableDto)
{
try
{
@@ -63,7 +63,7 @@ public class VariableAppService : IVariableAppService
var variable = _mapper.Map<Variable>(variableDto);
var addedVariable = await _repoManager.Variables.AddAsync(variable);
await _repoManager.CommitAsync();
return addedVariable.Id;
return _mapper.Map<VariableDto>(addedVariable);
}
catch (Exception ex)
{

View File

@@ -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<LoadMessage>
}
}
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)

View File

@@ -493,8 +493,11 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
{
// 显示添加变量数据的对话框
VariableDialogViewModel variableDialogViewModel=App.Current.Services.GetRequiredService<VariableDialogViewModel>();
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<VariableDto>(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)
{

View File

@@ -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}">
<ComboBox.ItemTemplate>