Files
IM_NEW/MessageService.WebApi/Application/Message/MessageMapperConfig.cs
T
2026-05-09 17:06:30 +08:00

33 lines
1.5 KiB
C#

using AutoMapper;
using MessageService.Domain.KeyObjects;
using MessageService.WebApi.Application.Dtos;
namespace MessageService.WebApi.Application.Message
{
public class MessageMapperConfig : Profile
{
public MessageMapperConfig()
{
// 1. 配置 QuoteInfo -> QuoteInfoResponse
CreateMap<QuoteInfo, QuoteInfoResponse>();
// 2. 配置 MessageContent -> MessageContentResponse
CreateMap<MessageContent, MessageContentResponse>()
// 关键点:Body 是 object,由于我们在实体里写了 Body 计算属性
// AutoMapper 默认会识别到同名的 Body 属性并进行映射
// 如果你想显式指定逻辑,可以取消下面这行的注释:
// .ForMember(dest => dest.Body, opt => opt.MapFrom(src => src.Body))
.ForMember(dest => dest.Ext, opt => opt.MapFrom(src => src.Ext))
.ForMember(dest => dest.Quote, opt => opt.MapFrom(src =>
src.Quote.MessageId == Guid.Empty ? null : src.Quote));
// 3. 配置 Message -> MessageResponse
CreateMap<Domain.Entities.Message, MessageResponse>()
// 映射审计字段中的创建时间
.ForMember(dest => dest.CreationTime, opt => opt.MapFrom(src => src.CreationTime))
// 嵌套映射 Content
.ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content));
}
}
}