using AutoMapper; using LeafWeb.Core.Entities; using LeafWeb.Core.Utility; namespace LeafWeb.Core.Remote { public class PiscalLeafInputFile { private static readonly IMapper Mapper; public int LeafInputId { get; set; } public string Filename { get; set; } public byte[] Contents { get; set; } public string DirectoryName { get; set; } public string PhotosyntheticType { get; set; } static PiscalLeafInputFile() { var config = new MapperConfiguration(cfg => { cfg.CreateMap() .ForMember(dest => dest.DirectoryName, opt => opt.MapFrom(src => PiscalUtility.GetPiscalDirectoryName(src))) .ForMember(dest => dest.Filename, opt => opt.MapFrom(src => src.Filename.WhitespaceToUnderscore().FilterValidFilename())) .ForMember(dest => dest.LeafInputId, opt => opt.MapFrom(src => src.Id)) .ForMember( dest => dest.PhotosyntheticType, opt => opt.MapFrom(src => src.LeafInput.PhotosynthesisType.Id.WhitespaceToUnderscore())); }); Mapper = config.CreateMapper(); } public PiscalLeafInputFile() { } public PiscalLeafInputFile(LeafInputFile leafInputFile) { Mapper.Map(leafInputFile, this); } } }