Пример #1
0
        private void InitializeDiagram()
        {
            var diagram = GetCurrentDiagram(this.Store);
            if (!diagram.Initialized)
            {
                // Display a form to the user. The form collects 
                // input for initializing the diagram.
                var dlg = new ItemDetailsForm();
                dlg.ShowDialog();
                var data = dlg.GetInitializeData();

                ModelerTransaction.Enter(() =>
                    {
                        using (var tx = diagram.Store.TransactionManager.BeginTransaction("Initialize", false))
                        {
                            (diagram.ModelElement as ModelRoot).DataContextName = data.ContextName;
                            diagram.Initialized = true;

                            if (tx.HasPendingChanges) tx.Commit();
                        }
                        if (data.ImportFromDatabase)
                        {
                            ConnectionUtil.SetExistingConnection(diagram.ModelElement as ModelRoot);
                            var sync = new Utilities.DbSchemaImporter(diagram);
                            sync.ImportModels();
                        }
                        else
                        {
                            ConnectionUtil.GetOrCreateConnectionString(diagram.ModelElement as ModelRoot, diagram.Name);
                        }
                    });

            }
        }
Пример #2
0
 public override void InvokeHandler(CommandSetState state)
 {
     ModelerTransaction.Enter(() =>
         {
             var diagram = state.CurrentDocView.CurrentDiagram;
             var sync = new Utilities.DbSchemaImporter(diagram);
             sync.ImportModels();
         });
 }
Пример #3
0
 public override void InvokeHandler(CommandSetState state)
 {
     ModelerTransaction.Enter(() =>
     {
         var diagram = state.CurrentDocView.CurrentDiagram;
         var sync    = new Utilities.DbSchemaImporter(diagram);
         sync.ImportModels();
     });
 }
Пример #4
0
        public override void InvokeHandler(CommandSetState state)
        {
            var diagram = state.CurrentDocView.CurrentDiagram;
            var modelRoot = diagram.Store.ElementDirectory.FindElements<ModelRoot>().Single();
            var connectionString = modelRoot.ConnectionString;

            var dlg = new GenerateSQLForm();
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var sqlGenerator = new DbSchemaGenerator(diagram)
                {
                    CleanUpDbSchema = dlg.CleanupDbSchema,
                    UseNavigationPropertyNameForFKeys = dlg.UseNavigationPropertyNameForFKeys,
                };
                var sb = sqlGenerator.GenerateScripts();
                System.IO.File.WriteAllText(dlg.Filename, sb.ToString());

                if (dlg.OverwriteDatabase)
                {
                    //Creating a connection to the given database
                    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
                    {
                        var originalDatabase = sqlConnection.Database;
                        sqlConnection.Open();

                        //Switching to master database
                        sqlConnection.ChangeDatabase("master");
                        ServerConnection svrConnection = new ServerConnection(sqlConnection);

                        //Recreating database and executing the query file
                        DropAndRecreateDatabase(originalDatabase, svrConnection);
                        svrConnection.ExecuteNonQuery(System.IO.File.ReadAllText(dlg.Filename));
                    }

                    ModelerTransaction.Enter(() =>
                        {

                            //Importing the new schema from database
                            var sync = new Utilities.DbSchemaImporter(diagram);
                            sync.FullDatabaseReload = true;
                            sync.ImportModels();
                        });
                }
                System.Windows.Forms.MessageBox.Show("Sql script generation completed.");
            }
        }
Пример #5
0
        public override void InvokeHandler(CommandSetState state)
        {
            var diagram          = state.CurrentDocView.CurrentDiagram;
            var modelRoot        = diagram.Store.ElementDirectory.FindElements <ModelRoot>().Single();
            var connectionString = modelRoot.ConnectionString;

            var dlg = new GenerateSQLForm();

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var sqlGenerator = new DbSchemaGenerator(diagram)
                {
                    CleanUpDbSchema = dlg.CleanupDbSchema,
                    UseNavigationPropertyNameForFKeys = dlg.UseNavigationPropertyNameForFKeys,
                };
                var sb = sqlGenerator.GenerateScripts();
                System.IO.File.WriteAllText(dlg.Filename, sb.ToString());

                if (dlg.OverwriteDatabase)
                {
                    //Creating a connection to the given database
                    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
                    {
                        var originalDatabase = sqlConnection.Database;
                        sqlConnection.Open();

                        //Switching to master database
                        sqlConnection.ChangeDatabase("master");
                        ServerConnection svrConnection = new ServerConnection(sqlConnection);

                        //Recreating database and executing the query file
                        DropAndRecreateDatabase(originalDatabase, svrConnection);
                        svrConnection.ExecuteNonQuery(System.IO.File.ReadAllText(dlg.Filename));
                    }

                    ModelerTransaction.Enter(() =>
                    {
                        //Importing the new schema from database
                        var sync = new Utilities.DbSchemaImporter(diagram);
                        sync.FullDatabaseReload = true;
                        sync.ImportModels();
                    });
                }
                System.Windows.Forms.MessageBox.Show("Sql script generation completed.");
            }
        }
Пример #6
0
        private void InitializeDiagram()
        {
            var diagram = GetCurrentDiagram(this.Store);

            if (!diagram.Initialized)
            {
                // Display a form to the user. The form collects
                // input for initializing the diagram.
                var dlg = new ItemDetailsForm();
                dlg.ShowDialog();
                var data = dlg.GetInitializeData();

                ModelerTransaction.Enter(() =>
                {
                    using (var tx = diagram.Store.TransactionManager.BeginTransaction("Initialize", false))
                    {
                        (diagram.ModelElement as ModelRoot).DataContextName = data.ContextName;
                        diagram.Initialized = true;

                        if (tx.HasPendingChanges)
                        {
                            tx.Commit();
                        }
                    }
                    if (data.ImportFromDatabase)
                    {
                        ConnectionUtil.SetExistingConnection(diagram.ModelElement as ModelRoot);
                        var sync = new Utilities.DbSchemaImporter(diagram);
                        sync.ImportModels();
                    }
                    else
                    {
                        ConnectionUtil.GetOrCreateConnectionString(diagram.ModelElement as ModelRoot, diagram.Name);
                    }
                });
            }
        }