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]; }