refactor: simplify export metadata construction
This commit is contained in:
@@ -1,27 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace Disco.Models.Exporting
|
||||
{
|
||||
public class ExportFieldMetadata<T> where T : IExportRecord
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string ColumnName { get; set; }
|
||||
public Type ValueType { get; set; }
|
||||
public Func<T, object> Accessor { get; set; }
|
||||
public Func<object, string> CsvEncoder { get; set; }
|
||||
|
||||
public ExportFieldMetadata(string name, Type valueType, Func<T, object> accessor, Func<object, string> csvEncoder)
|
||||
{
|
||||
Name = name;
|
||||
ValueType = valueType;
|
||||
Accessor = accessor;
|
||||
CsvEncoder = csvEncoder;
|
||||
}
|
||||
|
||||
public ExportFieldMetadata(string name, string columnName, Type valueType, Func<T, object> accessor, Func<object, string> csvEncoder)
|
||||
: this(name, valueType, accessor, csvEncoder)
|
||||
{
|
||||
ColumnName = columnName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Disco.Models.Exporting
|
||||
{
|
||||
public class ExportMetadata<T>
|
||||
: List<ExportMetadataField<T>> where T : IExportRecord
|
||||
{
|
||||
public List<string> IgnoreShortNames { get; } = new List<string>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
|
||||
namespace Disco.Models.Exporting
|
||||
{
|
||||
public class ExportMetadataField<T> where T : IExportRecord
|
||||
{
|
||||
public string ColumnName { get; }
|
||||
public Type ValueType { get; }
|
||||
public Func<T, object> Accessor { get; }
|
||||
public Func<object, string> CsvEncoder { get; }
|
||||
|
||||
public ExportMetadataField(string columnName, Type valueType, Func<T, object> accessor, Func<object, string> csvEncoder)
|
||||
{
|
||||
ColumnName = columnName;
|
||||
ValueType = valueType;
|
||||
Accessor = accessor;
|
||||
CsvEncoder = csvEncoder;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user