public override Transform GetTransformReader(Table table, bool previewMode = false) { // var reader = new ReaderMemory(table); var reader = new ReaderMemory(_tables[table.Name], null); return(reader); }
private async Task DoCreates() { //wait for the previous create task to finish before writing next buffer. if (_createRecordsTask != null) { var result = await _createRecordsTask; WriteDataTicks += result; } var createTable = new Table(_targetTable.Name, _targetTable.Columns, _createRows); var createReader = new ReaderMemory(createTable); _createRecordsTask = TaskTimer.Start(() => _targetConnection.ExecuteInsertBulk(_targetTable, createReader, _cancellationToken)); //this has no await to ensure processing continues. _createRows = new TableCache(); }
private async Task DoReject() { //wait for the previous create task to finish before writing next buffer. if (_rejectRecordsTask != null) { var result = await _rejectRecordsTask; WriteDataTicks += result; } // create a reject table if reject records have occurred. if (!_rejectTableCreated) { if (_rejectTable != null) { var rejectExistsResult = await _rejectConnection.TableExists(_rejectTable, _cancellationToken); if (!rejectExistsResult) { await _rejectConnection.CreateTable(_rejectTable, false, _cancellationToken); } // compare target table to ensure all columns exist. var compareTableResult = await _rejectConnection.CompareTable(_rejectTable, _cancellationToken); if (!compareTableResult) { throw new TransformWriterException($"The transform writer failed as the reject table columns did not match expected columns. Table {_rejectTable.Name} on {_rejectConnection.Name}."); } _rejectTableCreated = true; } else { throw new TransformWriterException($"The transform writer failed there were rejected records, however no reject table specified."); } } var createTable = new Table(_rejectTable.Name, _rejectTable.Columns, _rejectRows); var createReader = new ReaderMemory(createTable); _rejectRecordsTask = TaskTimer.Start(() => _targetConnection.ExecuteInsertBulk(createTable, createReader, _cancellationToken)); //this has no await to ensure processing continues. }
public override Task <DbDataReader> GetDatabaseReader(Table table, DbConnection connection, SelectQuery query, CancellationToken cancellationToken) { var reader = new ReaderMemory(_tables[table.Name], null); return(Task.FromResult <DbDataReader>(reader)); }