40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using System.Linq;
|
|
using AutoMapper;
|
|
using LeafWeb.Core.Entities;
|
|
using LeafWeb.Core.Utility;
|
|
|
|
namespace LeafWeb.Core.Remote
|
|
{
|
|
public class PiscalLeafInput
|
|
{
|
|
private static readonly IMapper Mapper;
|
|
public int LeafInputId { get; set; }
|
|
public string PhotosyntheticType { get; set; }
|
|
public string DirectoryName { get; set; }
|
|
public PiscalLeafInputFile[] InputFiles { get; set; }
|
|
|
|
static PiscalLeafInput()
|
|
{
|
|
var config =
|
|
new MapperConfiguration(cfg =>
|
|
{
|
|
cfg.CreateMap<LeafInput, PiscalLeafInput>()
|
|
.ForMember(dest => dest.DirectoryName,
|
|
opt => opt.MapFrom(src => PiscalUtility.GetPiscalDirectoryName(src)))
|
|
.ForMember(dest => dest.LeafInputId, opt => opt.MapFrom(src => src.Id))
|
|
.ForMember(dest => dest.InputFiles, opt => opt.MapFrom(src => src.InputFiles.Select(f => new PiscalLeafInputFile(f)).ToArray()))
|
|
.ForMember(
|
|
dest => dest.PhotosyntheticType,
|
|
opt => opt.MapFrom(src => src.PhotosynthesisType.Id.WhitespaceToUnderscore()));
|
|
});
|
|
Mapper = config.CreateMapper();
|
|
}
|
|
|
|
public PiscalLeafInput() { }
|
|
|
|
public PiscalLeafInput(LeafInput leafInput)
|
|
{
|
|
Mapper.Map(leafInput, this);
|
|
}
|
|
}
|
|
} |