Esempio n. 1
0
        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]);
            }
        }
Esempio n. 2
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;
                }
            }
        }
Esempio n. 3
0
        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;
        }