MES-ETL/ConsoleApp2/Options/DataTransformOptions.cs

33 lines
1.1 KiB
C#
Raw Normal View History

2024-01-12 16:50:37 +08:00
using StackExchange.Redis;
namespace ConsoleApp2.Options;
2023-12-29 16:16:05 +08:00
public enum ColumnType
{
Blob,
Text,
UnDefine,
}
2023-12-28 15:18:03 +08:00
public class DataTransformOptions
{
2023-12-29 16:16:05 +08:00
public Func<DataRecord, string>? DatabaseFilter { get; set; }
2024-01-12 16:50:37 +08:00
public Func<string, string>? TransformBinary { get; set; }//Binary转字符串方法
2024-01-16 18:00:23 +08:00
public Func<DataRecord, IDatabase, Task<bool>>? RecordFilter { get; set; }//数据过滤方法
2024-01-12 16:50:37 +08:00
public Action<DataRecord>? RecordModify { get; set; }//数据修改
2024-01-16 18:00:23 +08:00
public Func<DataRecord, IDatabase, Task<DataRecord?>>? RecordReplace { get; set; }//数据替换
2024-01-12 16:50:37 +08:00
public Func<DataRecord, IList<DataRecord>?>? RecordAdd { get; set; }//数据替换
2024-01-15 17:26:44 +08:00
public Action<DataRecord, IDatabase>? RecordCache { get; set; }//数据缓存
2024-01-12 16:50:37 +08:00
2024-01-04 09:00:44 +08:00
/// <summary>
/// 配置导入数据的特殊列
/// </summary>
2023-12-29 16:16:05 +08:00
public Dictionary<string, ColumnType> ColumnTypeConfig { get; set; } = new(); // "table.column" -> type
public ColumnType GetColumnType(string table, string column)
{
return ColumnTypeConfig.GetValueOrDefault($"{table}.{column}", ColumnType.UnDefine);
}
2023-12-28 15:18:03 +08:00
}