2024-01-17 14:15:44 +08:00
|
|
|
|
using Microsoft.Extensions.Caching.Distributed;
|
|
|
|
|
using StackExchange.Redis;
|
2024-01-12 16:50:37 +08:00
|
|
|
|
|
|
|
|
|
namespace ConsoleApp2.Options;
|
2023-12-29 16:16:05 +08:00
|
|
|
|
|
|
|
|
|
public enum ColumnType
|
|
|
|
|
{
|
|
|
|
|
Blob,
|
|
|
|
|
Text,
|
2024-01-18 14:36:36 +08:00
|
|
|
|
Json,
|
2023-12-29 16:16:05 +08:00
|
|
|
|
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-17 14:15:44 +08:00
|
|
|
|
public Func<DataRecord, IDistributedCache, Task<bool>>? RecordFilter { get; set; }//数据过滤方法
|
2024-01-12 16:50:37 +08:00
|
|
|
|
public Action<DataRecord>? RecordModify { get; set; }//数据修改
|
2024-01-17 14:15:44 +08:00
|
|
|
|
public Func<DataRecord, IDistributedCache, Task<DataRecord?>>? RecordReplace { get; set; }//数据替换
|
2024-01-12 16:50:37 +08:00
|
|
|
|
public Func<DataRecord, IList<DataRecord>?>? RecordAdd { get; set; }//数据替换
|
2024-01-17 17:05:03 +08:00
|
|
|
|
public Func<DataRecord, IDistributedCache, Task>? 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
|
|
|
|
}
|