46 lines
1.6 KiB
C#

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<Role, CreatingRoleDto>().ReverseMap();
CreateMap<Role, ReadingRoleDto>().ReverseMap();
CreateMap<Role, UpdatingRoleDto>().ReverseMap();
// USER ROLES
CreateMap<UserRoles, CreatingUserRolesDto>().ReverseMap();
CreateMap<UserRoles, ReadingUserRolesDto>().ReverseMap();
// USER
CreateMap<User, CreatingUserDto>()
.ReverseMap()
.AfterMap((src, dest) =>
{
dest.PasswordHash = BCrypt.Net.BCrypt.HashPassword(src.Password);
});
CreateMap<User, ReadingUserDto>()
.ForMember(dest => dest.UserRoles, opt => opt.MapFrom(src =>
src.UserRoles!.Select(ur => new ReadingRoleDto
{
Id = ur.Role!.Id,
Name = ur.Role.Name
}).ToList()));
CreateMap<User, UpdatingUserDto>()
.ReverseMap()
.AfterMap((src, dest) =>
{
dest.PasswordHash = BCrypt.Net.BCrypt.HashPassword(src.Password);
});
}
}
}