using System.Linq.Expressions; using AutoMapper; using LANCommander.SDK.Models; namespace LANCommander.Server { public class LANCommanderMappingProfile : Profile { public LANCommanderMappingProfile() { CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateEntityReferenceMap(g => g.Title); CreateMap() .ForMember(dest => dest.IsPrimaryAction, opt => opt.MapFrom(src => src.PrimaryAction)); CreateMap() .MaxDepth(5) .ForMember(dest => dest.DependentGames, opt => opt.MapFrom(src => src.DependentGames.Select(d => d.Id))); CreateMap() .ForMember(dest => dest.Cover, opt => opt.MapFrom(src => src.Media.Where(m => m.Type == SDK.Enums.MediaType.Cover).FirstOrDefault())); CreateMap(); CreateMap() .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Title)); } private void CreateEntityReferenceMap(Expression> nameMember) { CreateMap() .ForMember(dest => dest.Name, opt => opt.MapFrom(nameMember)); } } }