Files
LeafWeb/Core/Remote/PiscalLeafOutputFile.cs
T

55 lines
1.4 KiB
C#

using System;
using AutoMapper;
using LeafWeb.Core.Entities;
namespace LeafWeb.Core.Remote
{
public class PiscalLeafOutputFile
{
private static readonly IMapper Mapper;
public string Filename { get; set; }
public byte[] Contents { get; set; }
public string PiscalDirectoryName { get; set; }
public int LeafInputId => PiscalUtility.GetIdFromDirectoryName(PiscalDirectoryName);
// valid values: "touser", "nottouser", "clninput"
public string OutputFileType { get; set; }
static PiscalLeafOutputFile()
{
var config =
new MapperConfiguration(cfg =>
{
cfg.CreateMap<PiscalLeafOutputFile, LeafOutputFile>()
.ForMember(dest => dest.FileContents, opt =>
opt.ResolveUsing(src => new LeafOutputFileContents {Contents = src.Contents}))
.ForMember(dest => dest.FileType, opt =>
opt.ResolveUsing(src =>
{
switch (src.OutputFileType)
{
case "touser":
return LeafOutputFileType.ToUser;
case "nottouser":
return LeafOutputFileType.NotToUser;
case "clninput":
return LeafOutputFileType.CleanedInput;
default:
throw new ArgumentException();
}
}));
});
Mapper = config.CreateMapper();
}
public PiscalLeafOutputFile() { }
public LeafOutputFile GetLeafOutputFile()
{
var leafOutputFile = new LeafOutputFile();
Mapper.Map(this, leafOutputFile);
return leafOutputFile;
}
}
}