public ImportWizard() { InitializeComponent(); importConfig = new CrmImportConfig() { IgnoreStatuses = cbIgnoreStatuses.Checked, IgnoreSystemFields = cbIgnoreSystemFields.Checked, SaveBatchSize = Convert.ToInt32(nudSavePageSize.Value), JsonFolderPath = tbSourceDataLocation.Text, FilePrefix = "ExtractedData" }; wizardButtons1.OnExecute += Button2Click; logger = new LoggerService(tbLogger, SynchronizationContext.Current); wizardButtons1.OnCustomNextNavigation += WizardButtons1OnNavigateToNextPage; }
public void PerformImportAction(string importSchemaFilePath, int maxThreads, bool jsonFormat, Capgemini.DataMigration.Core.ILogger currentLogger, IEntityRepositoryService entityRepositoryService, CrmImportConfig currentImportConfig, CancellationTokenSource tokenSource) { try { if (maxThreads > 1) { currentLogger.LogInfo($"Starting MultiThreaded Processing, using {maxThreads} threads"); var repos = new List <IEntityRepository>(); int threadCount = maxThreads; while (threadCount > 0) { threadCount--; repos.Add(entityRepositoryService.InstantiateEntityRepository(true)); } var fileExporter = new CrmFileDataImporter(currentLogger, repos, currentImportConfig, tokenSource.Token); fileExporter.MigrateData(); } else { currentLogger.LogInfo("Starting Single Threaded processing, you must set up max threads to more than 1"); var entityRepo = entityRepositoryService.InstantiateEntityRepository(false); if (jsonFormat) { var fileExporter = new CrmFileDataImporter(currentLogger, entityRepo, currentImportConfig, tokenSource.Token); fileExporter.MigrateData(); } else { var schema = CrmSchemaConfiguration.ReadFromFile(importSchemaFilePath); var fileExporter = new CrmFileDataImporterCsv(currentLogger, entityRepo, currentImportConfig, schema, tokenSource.Token); fileExporter.MigrateData(); } } } catch (Exception ex) { currentLogger.LogError($"Critical import error, processing stopped: {ex.Message}"); throw; } }