using AutoMapper; using UserManagement.Application.Dtos.Incomming; using UserManagement.Application.Dtos.Outgoing; using UserManagement.Domain.Entities; namespace UserManagement.Application.MappingProfiles { public class BasicDtoMappingProfile : Profile { public BasicDtoMappingProfile() { // ROLE CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // USER CreateMap() .ForMember(dest => dest.RoleIds, opt => opt.Ignore()) .ReverseMap() .AfterMap((src, dest) => { dest.UserRoles = src.RoleIds?.Select(roleId => new UserRole { RoleId = roleId, User = dest }).ToList(); }); CreateMap() .ForMember(dest => dest.UserRoles, opt => opt.MapFrom(src => src.UserRoles.Select(ur => new ReadingRoleDto { Id = ur.Role.Id, Name = ur.Role.Name }).ToList())); CreateMap() .ForMember(dest => dest.RoleIds, opt => opt.Ignore()) .ReverseMap() .AfterMap((src, dest) => { dest.UserRoles = src.RoleIds?.Select(roleId => new UserRole { RoleId = roleId, UserId = dest.Id }).ToList(); }); } } }