PortBlog.API/PortBlog.API/Profiles/ResumeProfile.cs

73 lines
3.1 KiB
C#

using AutoMapper;
using PortBlog.API.Entities;
using PortBlog.API.Models;
namespace PortBlog.API.Profiles
{
public class ResumeProfile : Profile
{
public ResumeProfile()
{
CreateMap<Candidate, CandidateDto>()
.ForMember
(
dest => dest.Dob,
src => src.MapFrom(src => src.Dob != null ? src.Dob.Value.ToString("MMM dd, yyyy") : string.Empty)
);
CreateMap<Academic, AcademicDto>()
.ForMember(
dest => dest.Period,
src => src.MapFrom(src => src.StartYear + " - " + src.EndYear)
);
CreateMap<Certification, CertificationDto>();
CreateMap<Hobby, HobbyDto>();
CreateMap<Experience, ExperienceDto>()
.ForMember(
dest => dest.Period,
src => src.MapFrom(src => src.StartDate.ToString("MMM yyyy") + " - " + (src.EndDate != null ? src.EndDate.Value.ToString("MMM yyyy") : "Present"))
)
.ForMember
(
dest => dest.StartYear,
opts => opts.MapFrom(src => src.StartDate.Year.ToString())
)
.ForMember
(
dest => dest.EndYear,
opts => opts.MapFrom(src => src.EndDate != null ? src.EndDate.Value.Year.ToString() : "Present")
);
CreateMap<ExperienceDetails, ExperienceDetailsDto>();
CreateMap<Project, ProjectDto>()
.ForMember
(
dest => dest.Roles,
src => src.MapFrom(src => !string.IsNullOrEmpty(src.Roles) ? src.Roles.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList() : new List<string>())
)
.ForMember
(
dest => dest.Responsibilities,
src => src.MapFrom(src => !string.IsNullOrEmpty(src.Responsibilities) ? src.Responsibilities.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList() : new List<string>())
)
.ForMember
(
dest => dest.TechnologiesUsed,
src => src.MapFrom(src => !string.IsNullOrEmpty(src.TechnologiesUsed) ? src.TechnologiesUsed.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList() : new List<string>())
);
CreateMap<Skill, SkillDto>();
CreateMap<SocialLinks, SocialLinksDto>()
.ForMember
(
dest => dest.Posts,
src => src.MapFrom(src => src.Blog != null ? src.Blog.Posts : new List<Post>())
);
CreateMap<Resume, CvDto>();
CreateMap<Resume, ResumeDto>();
CreateMap<Resume, AboutDto>();
CreateMap<Resume, CandidateSocialLinksDto>();
CreateMap<Resume, ProjectsDto>();
CreateMap<MessageDto, MessageSendDto>();
CreateMap<MessageSendDto, Message>();
}
}
}