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) { var oldPage = wizard1.WizardPages[e.OldIndex]; var newPage = wizard1.WizardPages[e.NewIndex]; var importDomain = new nHydrate.DataImport.SqlClient.ImportDomain(); var databaseHelper = importDomain.DatabaseDomain; 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 var auditFields = new List <string>(); var list = importDomain.GetEntityList(connectString); cboTable.DataSource = list; cboTable.SelectedItem = list.FirstOrDefault(x => x.ToLower() == _entity.Name.ToLower()); } else if ((oldPage == pageChooseTable) && (e.NewIndex > e.OldIndex)) { //Verify that the table schema matches var connectionString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var auditFields = new List <SpecialField>(); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.CreatedByColumnName, Type = SpecialFieldTypeConstants.CreatedBy }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.CreatedDateColumnName, Type = SpecialFieldTypeConstants.CreatedDate }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.ModifiedByColumnName, Type = SpecialFieldTypeConstants.ModifiedBy }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.ModifiedDateColumnName, Type = SpecialFieldTypeConstants.ModifedDate }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.TimestampColumnName, Type = SpecialFieldTypeConstants.Timestamp }); auditFields.Add(new SpecialField { Name = _entity.nHydrateModel.TenantColumnName, Type = SpecialFieldTypeConstants.Tenant }); var dsValues = databaseHelper.GetStaticData(connectionString, importDomain.GetEntity(connectionString, (string)cboTable.SelectedValue, auditFields)); this.LoadData(dsValues); } }
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 treeView1_AfterSelect(object sender, TreeViewEventArgs e) //{ // var d = e.Node.Tag as DataTreeItem; // if (d == null) txtChanged.Text = ""; // else txtChanged.Text = d.GetChangeText(); //} private void wizard1_BeforeSwitchPages(object sender, nHydrate.Wizard.Wizard.BeforeSwitchPagesEventArgs e) { if (wizard1.WizardPages[e.OldIndex] == pageConnection) { this.Cursor = Cursors.WaitCursor; try { var auditFields = new List <SpecialField>(); auditFields.Add(new SpecialField { Name = _model.CreatedByColumnName, Type = SpecialFieldTypeConstants.CreatedBy }); auditFields.Add(new SpecialField { Name = _model.CreatedDateColumnName, Type = SpecialFieldTypeConstants.CreatedDate }); auditFields.Add(new SpecialField { Name = _model.ModifiedByColumnName, Type = SpecialFieldTypeConstants.ModifiedBy }); auditFields.Add(new SpecialField { Name = _model.ModifiedDateColumnName, Type = SpecialFieldTypeConstants.ModifiedDate }); auditFields.Add(new SpecialField { Name = _model.ConcurrencyCheckColumnName, Type = SpecialFieldTypeConstants.Timestamp }); auditFields.Add(new SpecialField { Name = _model.TenantColumnName, Type = SpecialFieldTypeConstants.Tenant }); var pkey = ProgressHelper.ProgressingStarted("Importing...", true); try { if (optDatabaseTypeSQL.Checked) { DatabaseConnectionControl1.PersistSettings(); var connectionString = DatabaseConnectionControl1.ImportOptions.GetConnectionString(); var schemaModelHelper = new nHydrate.DataImport.SqlClient.SchemaModelHelper(); if (!schemaModelHelper.IsValidConnectionString(connectionString)) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This not a valid connection string!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } LoadSqlServer(connectionString, auditFields); ProgressHelper.ProgressingComplete(pkey); } else if (optDatabaseTypePostgres.Checked) { var connectionString = txtConnectionStringPostgres.Text; if (!DslPackage.Objects.Postgres.ImportDomain.TestConnection(connectionString)) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This not a valid connection string!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var errorCount = LoadPostgres(connectionString, auditFields); ProgressHelper.ProgressingComplete(pkey); if (errorCount > 0) { MessageBox.Show("There were " + errorCount + " error on import.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("Unknown database", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { throw; } finally { ProgressHelper.ProgressingComplete(pkey); } if (!this.AreChanges()) { this.Cursor = Cursors.Default; e.Cancel = true; MessageBox.Show("This modelRoot is up-to-date. There are no changes to refresh.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { throw; } finally { this.Cursor = Cursors.Default; } } else if (wizard1.WizardPages[e.OldIndex] == pageConnection && wizard1.WizardPages[e.NewIndex] == pageEntities) { } else if (wizard1.WizardPages[e.OldIndex] == pageEntities && wizard1.WizardPages[e.NewIndex] == pageSummary) { //If there are no entities selected and relations are still checked then prompt var nodeCheckedList = tvwAdd.Nodes[0].Nodes.AsEnumerable <TreeNode>().Where(x => x.Checked).ToList(); nodeCheckedList.AddRange(tvwRefresh.Nodes[0].Nodes.AsEnumerable <TreeNode>().Where(x => x.Checked).ToList()); nodeCheckedList.AddRange(tvwDelete.Nodes[0].Nodes.AsEnumerable <TreeNode>().Where(x => x.Checked).ToList()); if (nodeCheckedList.Count == 0 && !chkIgnoreRelations.Checked) { var result = MessageBox.Show("There are no entities selected but relations will be refreshed. Do you want to turn off relation refreshing?", "Ignore Relations", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == System.Windows.Forms.DialogResult.Yes) { chkIgnoreRelations.Checked = true; } else if (result == System.Windows.Forms.DialogResult.No) { //Do Nothing } else if (result == System.Windows.Forms.DialogResult.Cancel) { e.Cancel = true; return; } } //Moving the to the summary page CreateSummary(); } }