public ImportViewModel(ImportConfiguration config, IDataReader reader, Database database)
        {
            this.config = config;
            this.reader = reader;
            this.database = database;

            bw.WorkerSupportsCancellation = false;
            bw.WorkerReportsProgress = true;
            bw.DoWork += new DoWorkEventHandler(bw_DoWork);
            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_DoWorkCompleted);
        }
        public void TimeoutTest()
        {
            string hostNameDoesntExist = "testest";
            ConnectionSetup connectionSetup = new ConnectionSetup(hostNameDoesntExist, "", "", true);
            connectionSetup.Timeout = 1;

            ImportConfiguration config = new ImportConfiguration(null, connectionSetup, "", null);

            ImportStatement[] statements = new ImportStatement[0];

            SQLServerDataImporter importer = new SQLServerDataImporter(config);

            importer.ImportData(statements);
        }
        public ImportConfiguration Load()
        {
            ImportConfiguration config = null;

            using (XmlReader reader = XmlReader.Create(filePath))
            {
                ConnectionSetup connectionSetup = readConnectionSetup(reader);

                string databaseName = readDatabaseName(reader);

                ErrorHandling errorHandling = readErrorHandling(reader);

                SQLServerConnector dbConnector = new SQLServerConnector(connectionSetup);
                Database           database    = dbConnector.GetDatabase(databaseName);

                TableMapping[] tableMappings = readTableMappings(reader, database);

                config = new ImportConfiguration(tableMappings, connectionSetup, databaseName, errorHandling);
            }

            return(config);
        }
        public ImportConfiguration Load()
        {
            ImportConfiguration config = null;

            using (XmlReader reader = XmlReader.Create(filePath))
            {

                ConnectionSetup connectionSetup = readConnectionSetup(reader);

                string databaseName = readDatabaseName(reader);

                ErrorHandling errorHandling = readErrorHandling(reader);

                SQLServerConnector dbConnector = new SQLServerConnector(connectionSetup);
                Database database = dbConnector.GetDatabase(databaseName);

                TableMapping[] tableMappings = readTableMappings(reader, database);

                config = new ImportConfiguration(tableMappings, connectionSetup, databaseName, errorHandling);
            }

            return config;
        }
 public StatementSetupPart(ImportConfiguration config)
 {
     this.config = config;
     errorHandling = config.ErrorHandling;
 }
 public SQLServerDataImporter(ImportConfiguration config)
     : base(config)
 {
 }
 public DataImporter(ImportConfiguration config)
 {
     this.config = config;
 }
 public ConfigurationSaver(ImportConfiguration configuration, string filePath)
 {
     this.configuration = configuration;
     this.filePath = filePath;
 }
        internal void SaveConfiguration()
        {
            try
            {
                TableMapping[] tableMappings = mappingPageViewModel.TableMappingViewModels.Select(t => t.TableMapping).ToArray();

                ImportConfiguration config = new ImportConfiguration(tableMappings, connectionPageViewModel.DatabaseConnector.ConnectionSetup,
                    connectionPageViewModel.SelectedDatabase.Name, importPageViewModel.ErrorHandling);

                ConfigurationSaver saver = new ConfigurationSaver(config, configurationPath);
                saver.Save();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 public SQLServerStatementCreator(ImportConfiguration config, SourceDataTable dataTable)
 {
     this.config = config;
     this.dataTable = dataTable;
 }
Example #11
0
 public ConfigurationSaver(ImportConfiguration configuration, string filePath)
 {
     this.configuration = configuration;
     this.filePath      = filePath;
 }
        private ImportConfiguration createImportConfiguration()
        {
            if (wizardViewModel.ConnectionPageViewModel.DatabaseConnector == null)
            {
                throw new Exception("Not connected to any database");
            }
            else if (wizardViewModel.MappingPageViewModel.TableMappings.Count < 1)
            {
                throw new Exception("There are no table mappings");
            }
            else
            {
                TableMapping[] tableMappings = wizardViewModel.MappingPageViewModel.TableMappingViewModels.Select(t => t.TableMapping).ToArray();
                ImportConfiguration config = new ImportConfiguration(tableMappings, wizardViewModel.ConnectionPageViewModel.DatabaseConnector.ConnectionSetup,
                    wizardViewModel.ConnectionPageViewModel.SelectedDatabase.Name, errorHandling);

                return config;
            }
        }
        public void StatementCreatorOrderTest()
        {
            DBTable table = new DBTable("dbo", "TestTable");
            DBColumn col1 = new DBColumn(table, "TestCol1", true, DBDatatype.integer);
            DBColumn col2 = new DBColumn(table, "TestCol2", false, DBDatatype.nvarchar);
            DBColumn col3 = new DBColumn(table, "TestCol3", false, DBDatatype.integer);
            table.Columns = new List<DBColumn>() { col1, col2, col3 };

            Database db = new Database("TestDB", new List<DBTable>() { table });

            TableMapping sourceTablemapping = new TableMapping(new DBTable("dbo", "TestTable2"), TableMappingImportType.Insert, null);

            ColumnMapping colMap1 = new TableColumnMapping(sourceTablemapping, col1, col1, ColumnUse.Where);
            ColumnMapping colMap2 = new LiteralColumnMapping("2", LiteralType.String, col2, ColumnUse.Where);
            ColumnMapping colMap3 = new LiteralColumnMapping("3", LiteralType.String, col2, ColumnUse.Set);

            TableMapping tableMapping = new TableMapping(table, TableMappingImportType.Update, new ColumnMapping[] { colMap1, colMap2, colMap3 });

            ErrorHandling errorHandling = new ErrorHandling();
            ImportConfiguration config = new ImportConfiguration(new TableMapping[] { tableMapping }, null, "TestDB", errorHandling);

            SourceDataEntry[] entries = new SourceDataEntry[] {SourceDataEntry.CreateDataEntry("", DataType.String, "") };
            SourceDataRow[] rows = new SourceDataRow[] { new SourceDataRow(entries, "0") };
            SourceDataTable dt = new SourceDataTable(rows, new string[] { "" });

            SQLServerStatementCreator statementCreator = new SQLServerStatementCreator(config, dt);

            ImportStatement statement = statementCreator.CreateStatement(0);
            ImportStatement[] statements = statementCreator.CreateStatements();

            Assert.AreEqual(1, statements.Length);
            Assert.AreEqual(statement.RowReference, statements[0].RowReference);
            Assert.AreEqual(statement.SqlStatement, statements[0].SqlStatement);

            string[] lines = statement.SqlStatement
                .Split(new string[] { "\n" }, StringSplitOptions.None).Where(s => s.Length > 0).ToArray();

            StatementSetupPart setupPart = new StatementSetupPart(config);

            Assert.AreEqual(setupPart.GetDatabasePart(), lines[0]);
            Assert.AreEqual(setupPart.GetWarningsPart(), lines[1]);

            StatementTransactionPart transPart = new StatementTransactionPart(config);
            string[] transStartPart = transPart.GetTransactionStartPart()
                .Split(new string[] { "\n" }, StringSplitOptions.None).Where(s => s.Length > 0).ToArray(); ;

            Assert.AreEqual(2, transStartPart.Length);
            Assert.AreEqual(transStartPart[0], lines[2]);
            Assert.AreEqual(transStartPart[1], lines[3]);

            StatementTableMappingPart tmParts = new StatementTableMappingPart(tableMapping, dt.GetDataRow(0));
            string variablePart = tmParts.GetTableVariablePart().Replace("\n", "");
            Assert.AreEqual(variablePart, lines[4]);

            string[] bodyParts = tmParts.GetStatementBodyPart()
                .Split(new string[] { "\n" }, StringSplitOptions.None).Where(s => s.Length > 0).ToArray();

            Assert.AreEqual(4, bodyParts.Length);
            Assert.AreEqual(bodyParts[0], lines[5]);
            Assert.AreEqual(bodyParts[1], lines[6]);
            Assert.AreEqual(bodyParts[2], lines[7]);
            Assert.AreEqual(bodyParts[3], lines[8]);

            string[] transEndPart = transPart.GetTransactionEndPart()
                .Split(new string[] { "\n" }, StringSplitOptions.None).Where(s => s.Length > 0).ToArray();

            Assert.AreEqual(12, transEndPart.Length);
            Assert.AreEqual(transEndPart[0], lines[9]);
            Assert.AreEqual(transEndPart[1], lines[10]);
            Assert.AreEqual(transEndPart[2], lines[11]);
            Assert.AreEqual(transEndPart[3], lines[12]);
            Assert.AreEqual(transEndPart[4], lines[13]);
            Assert.AreEqual(transEndPart[5], lines[14]);
            Assert.AreEqual(transEndPart[6], lines[15]);
            Assert.AreEqual(transEndPart[7], lines[16]);
            Assert.AreEqual(transEndPart[8], lines[17]);
            Assert.AreEqual(transEndPart[9], lines[18]);
            Assert.AreEqual(transEndPart[10], lines[19]);
            Assert.AreEqual(transEndPart[11], lines[20]);
        }