using System.Data;
using JdeScoping.DataSync.Generated;
namespace JdeScoping.DataSync.IntegrationTests.Infrastructure;
///
/// IDataReader implementation for BulkMergeTestEntity.
///
public sealed class BulkMergeTestEntityDataReader : AsyncEnumerableDataReader
{
private static readonly string[] _columnNames = ["Id", "Name", "Amount", "LastUpdateDt"];
private static readonly Type[] _columnTypes = [typeof(int), typeof(string), typeof(decimal), typeof(DateTime)];
public BulkMergeTestEntityDataReader(IAsyncEnumerable source) : base(source) { }
protected override string[] ColumnNames => _columnNames;
public static IReadOnlyList GetColumnNames() => _columnNames;
protected override object GetColumnValue(int ordinal)
{
var entity = Current!;
return ordinal switch
{
0 => entity.Id,
1 => entity.Name,
2 => entity.Amount ?? (object)DBNull.Value,
3 => entity.LastUpdateDt,
_ => throw new IndexOutOfRangeException()
};
}
protected override Type GetColumnType(int ordinal) => _columnTypes[ordinal];
}