重构:修改 VariableValueChangedEventArgs 以包含 VariableDto 对象

- 修改 VariableValueChangedEventArgs 类:
     - 移除了 VariableId、VariableName、NewValue 和 UpdateTime 属性
     - 添加了 Variable(VariableDto 类型)和 OldValue 属性
     - 更新了构造函数以接收 VariableDto 对象和旧值

   - 更新事件触发代码:
     - 修改了 UpdateViewProcessor.cs 中的事件触发代码,改为传递 VariableDto 对象和旧值

   - 更新事件处理代码:
     - 修改了 DataEventService.cs 中的事件处理逻辑,改为访问 e.Variable 属性
     - 修改了 VariableHistoryViewModel.cs 中的事件处理逻辑,改为使用 e.Variable 属性
This commit is contained in:
2025-10-02 18:47:45 +08:00
parent e5e2e8de5b
commit 3958275367
8 changed files with 43 additions and 177 deletions

View File

@@ -95,27 +95,21 @@ public class DataEventService : IDataEventService
private void OnVariableValueChanged(object? sender, VariableValueChangedEventArgs e)
{
_logger?.LogDebug("接收到变量值变更事件变量ID: {VariableId}, 新值: {NewValue}, 更新时间: {UpdateTime}",
e.VariableId, e.NewValue, e.UpdateTime);
e.Variable.Id, e.Variable.DataValue, e.Variable.UpdatedAt);
// 在UI线程上更新变量值
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
// 查找并更新对应的变量
if (_dataStorageService.Variables.TryGetValue(e.VariableId,out var variableToUpdate))
if (_dataStorageService.Variables.TryGetValue(e.Variable.Id,out var variableToUpdate))
{
_logger?.LogDebug("更新变量 {VariableId} ({VariableName}) 的值: {NewValue}",
e.VariableId, variableToUpdate.Name, e.NewValue);
variableToUpdate.DataValue = e.NewValue;
variableToUpdate.DisplayValue = e.NewValue;
variableToUpdate.UpdatedAt = e.UpdateTime;
_logger?.LogDebug("变量 {VariableId} ({VariableName}) 的值已更新",
e.VariableId, variableToUpdate.Name);
variableToUpdate.DataValue = e.Variable.DataValue;
variableToUpdate.DisplayValue = e.Variable.DisplayValue;
variableToUpdate.UpdatedAt = e.Variable.UpdatedAt;
}
else
{
_logger?.LogWarning("在变量存储中找不到ID为 {VariableId} 的变量,无法更新值", e.VariableId);
_logger?.LogWarning("在变量存储中找不到ID为 {VariableId} 的变量,无法更新值", e.Variable.Id);
}
}));
}

View File

@@ -3,6 +3,7 @@ using AutoMapper;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
using DMS.Application.Interfaces.Database;
using DMS.Core.Events;
@@ -107,7 +108,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
private void OnVariableValueChanged(object? sender, VariableValueChangedEventArgs e)
{
if (e.VariableId != CurrentVariable.Id)
if (e.Variable.Id != CurrentVariable.Id)
{
return;
}
@@ -116,7 +117,7 @@ partial class VariableHistoryViewModel : ViewModelBase, INavigatable
{
VariableId = CurrentVariable.Id,
Timestamp = DateTime.Now,
Value = e.NewValue
Value = e.Variable.DataValue
};
_variableHistoryList.Add(variableHistory);