private void wizard1_BeforeSwitchPages(object sender, nHydrate.Wizard.Wizard.BeforeSwitchPagesEventArgs e) { var oldPage = wizard1.WizardPages[e.OldIndex]; var newPage = wizard1.WizardPages[e.NewIndex]; if ((oldPage == pageImport) && (e.NewIndex > e.OldIndex)) { //Test Connection var connectString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var valid = DatabaseHelper.TestConnectionString(connectString); if (!valid) { MessageBox.Show("The information does not describe a valid connection string.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; return; } //Load the dropdown cboTable.DataSource = SqlSchemaToModel.GetTableListFromDatabase(connectString); cboTable.SelectedItem = _currentTable.Name; } else if ((oldPage == pageChooseTable) && (e.NewIndex > e.OldIndex)) { //Verify that the table schema matches var connectString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var columnList = SqlSchemaToModel.GetTableDefinitionFromDatabase(connectString, (string)cboTable.SelectedValue, (ModelRoot)_currentTable.Root); //Load the static data grid var sb = new StringBuilder(); sb.Append("SELECT "); var tableColumns = _currentTable.GetColumns(); foreach (var column in tableColumns) { if (columnList.Count(x => x.Name.ToLower() == column.Name.ToLower()) == 1) { if (column.IsBinaryType) { sb.Append("NULL"); } else { sb.Append("[" + column.Name + "]"); } } else { sb.Append("'' AS [" + column.Name + "]"); } if (tableColumns.IndexOf(column) < tableColumns.Count() - 1) { sb.Append(","); } } sb.AppendLine(" FROM [" + _currentTable.Name + "]"); var ds = DatabaseHelper.ExecuteDataset(connectString, sb.ToString()); this.LoadData(ds.Tables[0]); } }
private void wizard1_BeforeSwitchPages(object sender, nHydrate.Wizard.Wizard.BeforeSwitchPagesEventArgs e) { if (e.OldIndex == 0) { this.Cursor = Cursors.WaitCursor; try { DatabaseConnectionControl1.PersistSettings(); var connectionString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); if (!SqlSchemaToModel.IsValidConnectionString(connectionString)) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This not a valid connection string!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Setup new model var project = new nHydrateGeneratorProject(); SqlSchemaToModel.SetupNewProject(project, connectionString); this.NewDatabase = (project.Model as ModelRoot).Database; SqlSchemaToModel.GetProjectFromSqlSchema(project, connectionString, false, chkInheritance.Checked); //Load the tree this.Populate(); if (!this.AreChanges()) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This model is up-to-date. There are no changes to refresh.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception) { throw; } finally { this.Cursor = Cursors.Default; } } }
private void wizard1_Finish(object sender, EventArgs e) { //Tables foreach (TreeNode node in tvwAdd.Nodes[0].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedTables.Add(tag.Name.ToLower()); } } foreach (TreeNode node in tvwRefresh.Nodes[0].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedTables.Add(tag.Name.ToLower()); } } foreach (TreeNode node in tvwDelete.Nodes[0].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedTables.Add(tag.Name.ToLower()); } } //Views foreach (TreeNode node in tvwAdd.Nodes[1].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedViews.Add(tag.Name.ToLower()); } } foreach (TreeNode node in tvwRefresh.Nodes[1].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedViews.Add(tag.Name.ToLower()); } } foreach (TreeNode node in tvwDelete.Nodes[1].Nodes) { if (node.Checked) { var tag = node.Tag as DataTreeItem; this.SelectedViews.Add(tag.Name.ToLower()); } } SqlSchemaToModel.ImportModel( this.CurrentDatabase.Root as ModelRoot, this.NewDatabase.Root as ModelRoot, this.Settings, this.SelectedTables, this.SelectedViews); this.Status = SqlSchemaToModel.ImportReturnConstants.Success; }