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); } }); } }
public override void InvokeHandler(CommandSetState state) { ModelerTransaction.Enter(() => { var diagram = state.CurrentDocView.CurrentDiagram; var sync = new Utilities.DbSchemaImporter(diagram); sync.ImportModels(); }); }
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."); } }
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."); } }
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); } }); } }