private static void StartMultiThreadedImport(CrmImportConfig importConfig, ILogger logger, CancellationTokenSource cancellationToken, string connectionString, int maxThreads, bool useCsv, CrmSchemaConfiguration schemaConfig) { var connectionHelper = new ConnectionHelper(); logger.Info($"Starting MultiThreaded Processing, using {maxThreads} threads"); var repos = new List <IEntityRepository>(); var cnt = Convert.ToInt32(maxThreads); while (cnt > 0) { cnt--; repos.Add(new EntityRepository(connectionHelper.GetOrganizationalService(connectionString), new ServiceRetryExecutor())); logger.Info("New connection created to " + connectionString); } CrmGenericImporter fileImporter = null; if (!useCsv) { fileImporter = new CrmFileDataImporter(logger, repos, importConfig, cancellationToken.Token); } else { fileImporter = new CrmFileDataImporterCsv(logger, repos, importConfig, schemaConfig, cancellationToken.Token); } fileImporter.MigrateData(); }
public void StartSingleThreadedImport(CrmImportConfig importConfig, ILogger logger, CancellationTokenSource cancellationToken, string connectionString, bool useCsv, CrmSchemaConfiguration schemaConfig) { var connectionHelper = new ConnectionHelper(); var orgService = connectionHelper.GetOrganizationalService(connectionString); logger.Info("Starting Single Threaded processing, you must configure connection string for multithreaded processing adn set up max threads to more than 1"); var entityRepo = new EntityRepository(orgService, new ServiceRetryExecutor()); CrmGenericImporter fileImporter = null; if (!useCsv) { fileImporter = new CrmFileDataImporter(logger, entityRepo, importConfig, cancellationToken.Token); } else { fileImporter = new CrmFileDataImporterCsv(logger, entityRepo, importConfig, schemaConfig, cancellationToken.Token); } fileImporter.MigrateData(); }