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");
        }
示例#2
0
        public void CrmFileDataExporterTarget()
        {
            ConsoleLogger.LogLevel = 0;

            var orgService = ConnectionHelper.GetOrganizationalServiceTarget();

            EntityRepository entityRepo = new EntityRepository(orgService, new ServiceRetryExecutor());

            string            folderPath         = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;
            string            fetchXMLFolderPath = Path.Combine(folderPath, "TestData\\FetchXmlFolder");
            CrmExporterConfig config             = new CrmExporterConfig()
            {
                FetchXMLFolderPath = fetchXMLFolderPath,
                BatchSize          = 1000,
                PageSize           = 100,
                TopCount           = 10000
            };

            DataCrmStoreReader  storeReader = new DataCrmStoreReader(new ConsoleLogger(), entityRepo, config);
            DataFileStoreWriter storeWriter = new DataFileStoreWriter(new ConsoleLogger(), $"{DateTime.UtcNow.ToString("yyMMmmss", CultureInfo.InvariantCulture)}testexportTarget", @"TestData");

            CrmFileDataExporter fileExporter = new CrmFileDataExporter(new ConsoleLogger(), storeReader, storeWriter);

            FluentActions.Invoking(() => fileExporter.MigrateData())
            .Should()
            .NotThrow();
        }
        public void StartSingleThreadedExport(CrmExporterConfig exportConfig, ILogger logger, CancellationTokenSource cancellationToken, string connectionString)
        {
            var connectionHelper = new ConnectionHelper();
            var orgService       = connectionHelper.GetOrganizationalService(connectionString);

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

            var fileExporter = new CrmFileDataExporter(logger, entityRepo, exportConfig, cancellationToken.Token);

            fileExporter.MigrateData();
        }
示例#4
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();
            }
        }