Ejemplo n.º 1
0
        static void ExportData(string connectionString, string schemaPath, string exportFolderPath)
        {
            Console.WriteLine("Export Started");

            var tokenSource   = new CancellationTokenSource();
            var serviceClient = new CrmServiceClient(connectionString);
            var entityRepo    = new EntityRepository(serviceClient, new ServiceRetryExecutor());
            var logger        = new ConsoleLogger();

            if (!Settings.Default.UseCsvImport)
            {
                // Json Export
                var fileExporterJson = new CrmFileDataExporter(logger, entityRepo, GetExportConfig(), tokenSource.Token);
                fileExporterJson.MigrateData();
            }
            else
            {
                // Csv Export
                var schema          = CrmSchemaConfiguration.ReadFromFile(schemaPath);
                var fileExporterCsv = new CrmFileDataExporterCsv(logger, entityRepo, GetExportConfig(), tokenSource.Token, schema);
                fileExporterCsv.MigrateData();
            }

            Console.WriteLine("Export Finished");
        }
        public void StartSingleThreadedExport(CrmExporterConfig exportConfig, ILogger logger, CancellationTokenSource cancellationToken, string connectionString, bool useCsv, CrmSchemaConfiguration schemaConfig)
        {
            var connectionHelper = new ConnectionHelper();
            var orgService       = connectionHelper.GetOrganizationalService(connectionString);

            logger.LogInfo("Connectd to instance " + connectionString);
            var entityRepo = new EntityRepository(orgService, new ServiceRetryExecutor());

            if (useCsv)
            {
                var fileExporter = new CrmFileDataExporterCsv(logger, entityRepo, exportConfig, schemaConfig, cancellationToken.Token);
                fileExporter.MigrateData();
            }
            else
            {
                var fileExporter = new CrmFileDataExporter(logger, entityRepo, exportConfig, cancellationToken.Token);
                fileExporter.MigrateData();
            }
        }
Ejemplo n.º 3
0
        public void DataExportTest()
        {
            ConsoleLogger.LogLevel = 5;

            var orgService = SourceService;

            var repo = new EntityRepository(orgService, new ServiceRetryExecutor());

            var config = GetExporterConfig();

            string exportConfigPath = Path.Combine(SchemaFolderPathFull, $"{ConfigPrefix}ExportConfig.json");

            if (File.Exists(exportConfigPath))
            {
                File.Delete(exportConfigPath);
            }

            config.SaveConfiguration(exportConfigPath);

            if (Directory.Exists(ExtractedDataPathFull))
            {
                Directory.Delete(ExtractedDataPathFull, true);
            }

            Directory.CreateDirectory(ExtractedDataPathFull);

            CrmFileDataExporter fileExporter = new CrmFileDataExporter(new ConsoleLogger(), repo, config, new CancellationToken(false));

            FluentActions.Invoking(() => fileExporter.MigrateData())
            .Should()
            .NotThrow();

            if (useCSV)
            {
                var schema = CrmSchemaConfiguration.ReadFromFile(SchemaPathFull);
                CrmFileDataExporterCsv fileExporterCsv = new CrmFileDataExporterCsv(new ConsoleLogger(), repo, config, schema, new CancellationToken(false));

                FluentActions.Invoking(() => fileExporterCsv.MigrateData())
                .Should()
                .NotThrow();
            }
        }