/// <summary> /// Starts the importing operation. /// </summary> public void Import() { _dataUnpacker.StartUnpacking(_datasetImporter.FileExtension); var datasets = _dbWriter.GetDatasets(); try { foreach (var table in datasets) { using (var datasetStream = _dataUnpacker.OpenStreamForUnpacking(table.Name)) { if (datasetStream != null) { _logger?.LogInformation($"Importing {table.Name}..."); int errorCount = 0; int recordCount = 0; var dataset = _datasetImporter.StartImport(datasetStream); dataset.SetSchema(table.Schema); //!!!!! TODO: need to save schema with exported file and then read it from there _dbWriter.StartSeeding(dataset); try { while (_datasetImporter.HasRecords()) { try { _dbWriter.InsertRecord(_datasetImporter.NextRecord()); recordCount++; } catch (Exception ex) { _logger?.LogDebug("ERROR: " + ex.Message); errorCount++; } } } finally { _dbWriter.FinishSeeding(); _datasetImporter.FinishImport(); _logger?.LogInformation($"{recordCount} records were imported"); if (errorCount > 0) { _logger?.LogWarning($"{errorCount} errors during import (duplicate records or violated constraints)"); } } } } } } finally { _dataUnpacker.FinishUnpacking(); } }
/// <summary> /// Stores the content of some dataset (table) to the list. /// </summary> /// <param name="importer">The importer.</param> /// <param name="inputStream">The input stream.</param> /// <param name="outputList">The output list.</param> public static void ImportToList(this IDatasetImporter importer, Stream inputStream, IList <DataRecord> outputList) { DataRecord record = null; try { var dataInfo = importer.StartImport(inputStream); while (importer.HasRecords()) { record = (DataRecord)importer.NextRecord(); outputList.Add(record); } } finally { importer.FinishImport(); } }
/// <summary> /// Starts the importing operation. /// </summary> public void Import() { _dataUnpacker.StartUnpacking(_datasetImporter.FileExtension); var datasets = _dbWriter.GetDatasets(); try { foreach (var table in datasets) { try { using (var datasetStream = _dataUnpacker.OpenStreamForUnpacking(table.Name)) { if (datasetStream != null) { _logger?.LogInformation($"Importing {table.Name}..."); var dataset = _datasetImporter.StartImport(datasetStream); _dbWriter.StartSeeding(dataset); while (_datasetImporter.HasRecords()) { try { _dbWriter.WriteRecord(_datasetImporter.NextRecord()); } catch (Exception ex) { _logger?.LogError(ex.Message); } } _datasetImporter.FinishImport(); } } } finally { _dbWriter.FinishSeeding(); } } } finally { _dataUnpacker.FinishUnpacking(); } }