Files
GreenHomeBack/src/GreenHome.Application/MappingProfile.cs
2025-12-17 00:34:41 +03:30

72 lines
3.6 KiB
C#

using AutoMapper;
namespace GreenHome.Application;
// Mapping profile
public sealed class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<Domain.Device, DeviceDto>()
.ForMember(dest => dest.UserName, opt => opt.MapFrom(src => src.User.Name))
.ForMember(dest => dest.UserFamily, opt => opt.MapFrom(src => src.User.Family))
.ForMember(dest => dest.UserMobile, opt => opt.MapFrom(src => src.User.Mobile))
.ReverseMap()
.ForMember(dest => dest.User, opt => opt.Ignore());
CreateMap<Domain.TelemetryRecord, TelemetryDto>().ReverseMap();
CreateMap<Domain.DeviceSettings, DeviceSettingsDto>()
.ForMember(dest => dest.DeviceName, opt => opt.MapFrom(src => src.Device.DeviceName))
.ReverseMap()
.ForMember(dest => dest.Device, opt => opt.Ignore());
CreateMap<Domain.AlertCondition, AlertConditionDto>()
.ForMember(dest => dest.DeviceName, opt => opt.MapFrom(src => src.Device.DeviceName))
.ReverseMap()
.ForMember(dest => dest.Device, opt => opt.Ignore());
CreateMap<Domain.AlertRule, AlertRuleDto>().ReverseMap()
.ForMember(dest => dest.AlertCondition, opt => opt.Ignore());
CreateMap<CreateAlertRuleRequest, Domain.AlertRule>();
CreateMap<Domain.User, UserDto>().ReverseMap();
CreateMap<Domain.AlertLog, AlertLogDto>()
.ForMember(dest => dest.DeviceName, opt => opt.MapFrom(src => src.Device.DeviceName))
.ForMember(dest => dest.UserName, opt => opt.MapFrom(src => src.User.Name))
.ForMember(dest => dest.UserMobile, opt => opt.MapFrom(src => src.User.Mobile))
.ReverseMap()
.ForMember(dest => dest.Device, opt => opt.Ignore())
.ForMember(dest => dest.User, opt => opt.Ignore())
.ForMember(dest => dest.AlertCondition, opt => opt.Ignore());
CreateMap<Domain.UserDailyReport, UserDailyReportDto>()
.ForMember(dest => dest.DeviceName, opt => opt.MapFrom(src => src.Device.DeviceName))
.ForMember(dest => dest.UserName, opt => opt.MapFrom(src => src.User.Name))
.ForMember(dest => dest.UserFamily, opt => opt.MapFrom(src => src.User.Family));
CreateMap<Domain.ReportImage, ReportImageDto>();
CreateMap<Domain.Checklist, ChecklistDto>()
.ForMember(dest => dest.DeviceName, opt => opt.MapFrom(src => src.Device.DeviceName))
.ForMember(dest => dest.CreatedByUserName, opt => opt.MapFrom(src => src.CreatedByUser.Name + " " + src.CreatedByUser.Family));
CreateMap<Domain.ChecklistItem, ChecklistItemDto>();
CreateMap<Domain.ChecklistCompletion, ChecklistCompletionDto>()
.ForMember(dest => dest.ChecklistTitle, opt => opt.MapFrom(src => src.Checklist.Title))
.ForMember(dest => dest.CompletedByUserName, opt => opt.MapFrom(src => src.CompletedByUser.Name + " " + src.CompletedByUser.Family));
CreateMap<Domain.ChecklistItemCompletion, ChecklistItemCompletionDto>()
.ForMember(dest => dest.ItemTitle, opt => opt.MapFrom(src => src.ChecklistItem.Title));
CreateMap<Domain.DevicePost, DevicePostDto>()
.ForMember(dest => dest.AuthorName, opt => opt.MapFrom(src => src.AuthorUser.Name))
.ForMember(dest => dest.AuthorFamily, opt => opt.MapFrom(src => src.AuthorUser.Family));
CreateMap<Domain.DevicePostImage, DevicePostImageDto>();
}
}