Ejemplo n.º 1
0
        public override Transform GetTransformReader(Table table, bool previewMode = false)
        {
            // var reader = new ReaderMemory(table);
            var reader = new ReaderMemory(_tables[table.Name], null);

            return(reader);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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.
        }
Ejemplo n.º 4
0
        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));
        }