public static ImportRun RunTest(EntityType entityType, string fileName, ImportFormat importFormat, string sheetName = null) { string fileToken; using (Stream stream = SheetTestHelper.GetStream(fileName)) { fileToken = FileRepositoryHelper.AddTemporaryFile(stream); } EntityType type = entityType; ImportConfig importConfig = CreateImportConfig(type, importFormat, sheetName); ImportRun importRun = CreateImportRun(importConfig, fileToken); ISpreadsheetInspector inspector = Factory.Current.Resolve <ISpreadsheetInspector>( ); SpreadsheetInfo info = inspector.GetSpreadsheetInfo(fileToken, importFormat); SampleTable sample = inspector.GetSampleTable(fileToken, importFormat, sheetName, 1, 2, null); AddAllFields(importConfig, sample); // Run import IImportRunWorker worker = Factory.Current.Resolve <IImportRunWorker>( ); worker.StartImport(importRun.Id); return(importRun); }
public static ImportRun CsvImport(ImportConfig config, string csvData) { ImportSettings settings = new ImportSettings { FileToken = "whatever", ImportConfigId = config.Id }; IFileRepository fileRepository = MockFileRepository.FromText(csvData); using (var scope = Factory.Current .BeginLifetimeScope(builder => builder.RegisterInstance(fileRepository).Named <IFileRepository>(FileRepositoryModule.TemporaryFileRepositoryName))) { Assert.That(scope.ResolveKeyed <IFileRepository>(FileRepositoryModule.TemporaryFileRepositoryName), Is.InstanceOf <MockFileRepository>( )); // Create import run var si = ( SpreadsheetImporter )scope.Resolve <ISpreadsheetImporter>( ); ImportRun importRun = si.CreateImportRunEntity(config, settings); long importRunId = importRun.Id; IImportRunWorker worker = scope.Resolve <IImportRunWorker>( ); worker.StartImport(importRunId); return(importRun); } }
/// <summary> /// Begin task to import spreadsheet data. /// </summary> /// <param name="importSettings">The settings of the import.</param> /// <returns>Returns the ID of the import run.</returns> public long StartImport(ImportSettings importSettings) { // Validate if (importSettings == null) { throw new ArgumentNullException(nameof(importSettings)); } if (string.IsNullOrEmpty(importSettings.FileToken)) { throw new ArgumentException("importSettings.FileToken"); } // Load the config ImportConfig importConfig = SecurityBypassContext.ElevateIf( importSettings.SuppressSecurityCheckOnImportConfig, () => _entityRepository.Get <ImportConfig>(importSettings.ImportConfigId)); if (importConfig == null) { throw new ArgumentException("importSettings.ImportConfigId"); } // Create a new import run ImportRun importRun = CreateImportRunEntity(importConfig, importSettings); SecurityBypassContext.Elevate(importRun.Save); long importRunId = importRun.Id; try { _asyncRunner.Start(() => _importRunWorker.StartImport(importRunId)); } catch { // Async operation failed to start // (This is not reached if the import itself fails) importRun.ImportRunStatus_Enum = WorkflowRunState_Enumeration.WorkflowRunFailed; importRun.ImportMessages = "Failed to start importer."; SecurityBypassContext.Elevate(importRun.Save); throw; } return(importRun.Id); }