Files
mws.backend.dotnet/application/Common/MappingProfile.cs
T
2026-08-19 23:25:08 +07:00

38 lines
1.8 KiB
C#

using AutoMapper;
using mws.backend.dotnet.application.Documents;
using mws.backend.dotnet.application.Permissions;
using mws.backend.dotnet.application.Projects;
using mws.backend.dotnet.application.Tasks;
using mws.backend.dotnet.application.Users;
using mws.backend.dotnet.domain.Documents;
using mws.backend.dotnet.domain.MasterData;
using mws.backend.dotnet.domain.Roles;
using mws.backend.dotnet.domain.Tasks;
using mws.backend.dotnet.domain.Users;
namespace mws.backend.dotnet.application.Common;
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<mws.backend.dotnet.domain.Projects.Project, ProjectDto>()
.ForMember(d => d.CreatedByName, opt => opt.MapFrom(s => s.CreatedByUser == null ? null : s.CreatedByUser.DisplayName))
.ForMember(d => d.UpdatedByName, opt => opt.MapFrom(s => s.UpdatedByUser == null ? null : s.UpdatedByUser.DisplayName));
CreateMap<Role, RoleDto>();
CreateMap<MasterDataEntry, MasterData.MasterDataDto>();
CreateMap<RolePermission, PermissionEntryDto>();
CreateMap<User, UserDto>()
.ForMember(d => d.RoleId, opt => opt.MapFrom(s => s.UserRoles.Select(r => r.RoleId).FirstOrDefault()))
.ForMember(d => d.RoleName, opt => opt.MapFrom(s => string.Join(", ", s.UserRoles.Select(r => r.Role.Name))));
CreateMap<Document, DocumentDto>();
CreateMap<Document, DocumentNodeDto>()
.ForMember(d => d.Children, opt => opt.Ignore());
CreateMap<TaskItem, TaskDto>()
.ForMember(d => d.AssigneeName, opt => opt.MapFrom(s => s.Assignee == null ? null : s.Assignee.DisplayName));
CreateMap<TaskItem, RecentTaskDto>()
.ForMember(d => d.Status, opt => opt.MapFrom(s => s.Status.ToString()));
CreateMap<Document, RecentDocumentDto>();
}
}