public async Task ProcessAsync(CancellationToken cancellationToken) { bool tableExists = DatabaseCommander.ExecuteScalar <int>($"SELECT COUNT(1) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{Settings.SchemaName}' AND TABLE_NAME = '{Settings.TableName}'") > 0; if (tableExists) { throw new Exception($"Table {Settings.TableNameQualified} already exists"); } DataTable dataTable = _delimitedFileHandler.GetFileAsDataTable(Settings.FilePath); PrependPrimaryKeyIfNeeded(dataTable); AppendAuditFieldsIfNeeded(dataTable); SetColumnsToCreate(dataTable); CreateTable(); await DatabaseCommander.BuildCommand() .ForBulkCopy() .Into(Settings.TableNameQualified) .From(dataTable) .Mapping(mapping => mapping.UseAutoMap()) .ExecuteAsync(cancellationToken); }
public async Task ProcessAsync(CancellationToken cancellationToken) { //await DatabaseCommander.ExecuteNonQueryAsync($"DELETE FROM {Settings.TableNameQualified}", cancellationToken); DataTable dataTable = _delimitedFileHandler.GetFileAsDataTable(Settings.FilePath, '~'); await DatabaseCommander.BuildCommand() .ForBulkCopy() .Into(Settings.TableNameQualified) .From(dataTable) .Mapping(mapping => mapping.UseAutoMap()) .ExecuteAsync(cancellationToken); StoredProcedureResult result = await DatabaseCommander.BuildCommand() .ForStoredProcedure("[dbo].[LoadData]") .AddInputParameter("DataFile", Settings.FilePath) .ExecuteAsync(cancellationToken); if (result.GetReturnParameter <string>() == "-1") { throw new Exception("[dbo].[LoadData] encountered error"); } }