Files
BeReadyBackend/BeReadyBackend/MappingProfiles/EntityToDtoMappings.cs
T

70 lines
3.1 KiB
C#

using AutoMapper;
using BeReadyBackend.DTO.Achievements;
using BeReadyBackend.DTO.Designations;
using BeReadyBackend.DTO.Friends;
using BeReadyBackend.DTO.Groups;
using BeReadyBackend.DTO.Messages;
using BeReadyBackend.DTO.RandomChallenges;
using BeReadyBackend.DTO.Users;
using BeReadyBackend.Models;
namespace BeReadyBackend.MappingProfiles;
public class EntityToDtoMappings : Profile
{
public EntityToDtoMappings()
{
CreateMap<Achievement, GetAchievementDto>();
CreateMap<UserAchievement, GetAchievementDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Achievement!.Id))
.ForMember(dest => dest.Label, opt => opt.MapFrom(src => src.Achievement!.Label))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Achievement!.Description));
CreateMap<User, GetUserDto>()
.ForMember(dest => dest.GetUserStatsDto, opt => opt.MapFrom(src => src))
.ForMember(dest => dest.DesignationName, opt => opt.MapFrom(src => src.Designation!.Label));
CreateMap<User, GetUserDetailsDto>()
.ForMember(dest => dest.DesignationName, opt => opt.MapFrom(src => src.Designation!.Label))
.ForMember(dest => dest.GetUserStatsDto, opt => opt.MapFrom(src => src));
CreateMap<User, GetUserStatsDto>();
CreateMap<UserRandomChallenge, GetUserProofDto>();
CreateMap<RandomChallenge, GetUserChallengeDto>()
.ForMember(dest => dest.ChallengeTitle, opt => opt.MapFrom(src => src.Label))
.ForMember(dest => dest.ChallengeDescription, opt => opt.MapFrom(src => src.Libelle))
.ForMember(dest => dest.ChallengeStartDate, opt => opt.MapFrom(src => DateOnly.FromDateTime(src.GeneratedAt!.Value)));
CreateMap<UserFriend, GetFriendDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.Friend!.Username))
.ForMember(dest => dest.Score, opt => opt.MapFrom(src => src.Friend!.TotalLikes));
CreateMap<UserFriend, GetFriendRequestDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username))
.ForMember(dest => dest.Score, opt => opt.MapFrom(src => src.User!.TotalLikes));
CreateMap<UserGroup, GetUserGroupDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.UserId))
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username));
CreateMap<UserGroup, GetGroupDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.GroupId))
.ForMember(dest => dest.Label, opt => opt.MapFrom(src => src.Group!.Label));
CreateMap<Group, GetGroupDetailsDto>()
.ForMember(dest => dest.Users, opt => opt.MapFrom(src => src.UserGroups))
.ForMember(dest => dest.Messages, opt => opt.MapFrom(src => src.Messages));
CreateMap<Group, GetGroupDto>();
CreateMap<Message, GetMessageDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username));
CreateMap<RandomChallenge, GetRandomChallengeDto>();
CreateMap<Designation, GetDesignationDto>();
}
}