Files
BeReadyBackend/BeReadyBackend/MappingProfiles/EntityToDtoMappings.cs
T

84 lines
4.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<UserGroup, GetUserProofDto>();
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.ChallengeDuration, opt => opt.MapFrom(src => src.Duration))
.ForMember(dest => dest.ChallengeStartDate, opt => opt.MapFrom(src => DateOnly.FromDateTime(src.GeneratedAt!.Value)));
CreateMap<Group, GetUserChallengeDto>()
.ForMember(dest => dest.ChallengeTitle, opt => opt.MapFrom(src => src.Title))
.ForMember(dest => dest.ChallengeDescription, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.ChallengeDuration, opt => opt.MapFrom(src => src.Duration))
.ForMember(dest => dest.ChallengeStartDate, opt => opt.MapFrom(src => DateOnly.FromDateTime(src.CreationDate)));
CreateMap<UserFriend, GetFriendDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.Friend!.Username))
.ForMember(dest => dest.Score, opt => opt.MapFrom(src => src.Friend!.Score));
CreateMap<UserFriend, GetFriendRequestDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username))
.ForMember(dest => dest.Score, opt => opt.MapFrom(src => src.User!.Score));
CreateMap<UserGroup, GetUserGroupDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.UserId))
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username))
.ForMember(dest => dest.Score, opt => opt.MapFrom(src => src.User!.Score));
CreateMap<UserGroup, GetGroupDto>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.GroupId))
.ForMember(dest => dest.Label, opt => opt.MapFrom(src => src.Group!.Label))
.ForMember(dest => dest.IsFinished, opt => opt.MapFrom(src => src.Group!.IsFinished));
CreateMap<Group, GetGroupDetailsDto>()
.ForMember(dest => dest.Users, opt => opt.MapFrom(src => src.UserGroups))
.ForMember(dest => dest.Messages, opt => opt.MapFrom(src => src.Messages));
CreateMap<Message, GetMessageDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username));
CreateMap<UserGroup, GetProofDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username));
CreateMap<UserGroup, GetGroupRankingDto>()
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.User!.Username));
CreateMap<RandomChallenge, GetRandomChallengeDto>();
CreateMap<Designation, GetDesignationDto>();
}
}