aboutsummaryrefslogtreecommitdiff
path: root/src/Services/DevHive.Services/Configurations/Mapping/UserMappings.cs
blob: 043fcb7e9e61e63068e146592d264fbae5de96b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using DevHive.Data.Models;
using AutoMapper;
using DevHive.Services.Models.User;
using DevHive.Common.Models.Misc;
using DevHive.Data.Models.Relational;

namespace DevHive.Services.Configurations.Mapping
{
	public class UserMappings : Profile
	{
		public UserMappings()
		{
			CreateMap<UserServiceModel, User>();
			CreateMap<RegisterServiceModel, User>();
			CreateMap<FriendServiceModel, User>()
				.ForMember(dest => dest.Friends, src => src.Ignore());
			CreateMap<UpdateUserServiceModel, User>()
				.ForMember(dest => dest.Friends, src => src.Ignore())
				.AfterMap((src, dest) => dest.PasswordHash = PasswordModifications.GeneratePasswordHash(src.Password));
			CreateMap<UpdateFriendServiceModel, User>();

			CreateMap<User, UserServiceModel>()
				.ForMember(dest => dest.ProfilePictureURL, src => src.MapFrom(p => p.ProfilePicture.PictureURL))
				.ForMember(dest => dest.Friends, src => src.MapFrom(p => p.Friends));
			CreateMap<User, UpdateUserServiceModel>()
				.ForMember(x => x.Password, opt => opt.Ignore())
				.ForMember(dest => dest.ProfilePictureURL, src => src.MapFrom(p => p.ProfilePicture.PictureURL));
			CreateMap<User, FriendServiceModel>();
		}
	}
}