Files
DMS/DMS.Infrastructure/Profiles/MappingProfile.cs
David P.G 72d2440314 1 feat: 重构触发器设计,移除触发条件并添加名称字段
2
    3 - 从Trigger、DbTriggerDefinition和TriggerItem类中移除了所有条件相关的属性(Condition, Threshold, LowerBound, UpperBound)
    4 - 删除了ConditionType枚举,简化了触发器逻辑
    5 - 为触发器添加了Name字段,在核心模型、数据库实体和视图模型中都添加了该属性
    6 - 删除了TriggerDialog界面中的变量选择和搜索功能
    7 - 从TriggerDialog界面中删除了触发条件相关的UI元素
    8 - 更新了TriggerDialogViewModel,移除了条件相关的验证和业务逻辑
    9 - 更新了TriggersViewModel,移除了条件的初始化设置
   10 - 更新了AutoMapper配置文件,增加TriggerItem与Trigger之间的映射
   11 - 在TriggerEvaluationService中移除了条件判断逻辑,现在激活的触发器会直接执行动作
   12 - 更新了App.xaml,移除了对已删除枚举的引用
   13 - 修改了保存验证逻辑,确保触发器名称不能为空
2025-10-18 18:55:08 +08:00

53 lines
1.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using AutoMapper;
using DMS.Infrastructure.Entities;
using DMS.Core.Models;
using DMS.Core.Models.Triggers;
namespace DMS.Infrastructure.Profiles;
/// <summary>
/// AutoMapper 的配置类,用于定义对象之间的映射规则。
/// </summary>
public class MappingProfile : Profile
{
public MappingProfile()
{
// --- 用户映射 ---
// --- 设备映射 (包含List的父对象) ---
// AutoMapper 会自动使用上面的规则来处理 VariableTables 属性
CreateMap<DbDevice, Core.Models.Device>()
.ReverseMap();
// --- 变量表映射 (List中的元素) ---
CreateMap<DbVariableTable, VariableTable>()
.ReverseMap();
CreateMap<DbVariable, Variable>().ReverseMap();
// --- MQTT 和 变量数据 映射 ---
CreateMap<DbMqttServer, MqttServer>()
.ForMember(dest => dest.VariableAliases, opt => opt.Ignore())
.ReverseMap();
CreateMap<DbMqttAlias, MqttAlias>()
.ReverseMap();
CreateMap<DbMenu, MenuBean>().ReverseMap();
CreateMap<DbNlog, Nlog>().ReverseMap();
CreateMap<DbVariableHistory, VariableHistory>().ReverseMap();
CreateMap<DbEmailAccount, EmailAccount>().ReverseMap();
CreateMap<DbEmailMessage, EmailMessage>().ReverseMap();
CreateMap<DbEmailLog, EmailLog>().ReverseMap();
CreateMap<DbEmailTemplate, EmailTemplate>().ReverseMap();
// --- 触发器映射 ---
CreateMap<DbTriggerDefinition, Trigger>()
.ForMember(dest => dest.Variables, opt => opt.Ignore()) // 忽略Variables属性映射因为可能需要特殊处理
.ReverseMap();
}
}