private string GetScriptForAll(bool changesOnly) { if (BusyPopulating || DB1 == null) { return(""); } if (comboBoxDatabaseTypes.SelectedItem == null) { MessageBox.Show(this, "Select a database-type.", "Invalid database", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(""); } if (DB1 == null) { if (RefreshCalled != null) { RefreshCalled(null, null); } else { return(""); } } while (ArchAngel.Providers.EntityModel.UI.PropertyGrids.FormDatabase.RefreshingSchema) { Application.DoEvents(); System.Threading.Thread.Sleep(100); } ShowChangeScripts(DB1.Name, changesOnly); ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ScriptRunnerContainer scriptContainer = null; string db = comboBoxDatabaseTypes.SelectedItem.ToString(); if (db == "SQL Server 2005/2008/Azure") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForSqlServer; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "Oracle") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForOracle; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "MySQL 5") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForMySql; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else { MessageBox.Show(this, "Only SQL Server is supported at this time. Support for other databases is coming soon.", "Invalid database", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(""); } //else if (db == "PostgreSQL") //{ // scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForPostgreSql; // Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); //} //else if (db == "Firebird") //{ // scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForFirebird; // Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); //} //else // throw new NotImplementedException("Database type not handled yet: " + db); try { StringBuilder sb = new StringBuilder(10000); sb.AppendLine(scriptContainer.GetHeader(ScriptModelDatabase)); //if (comboBoxTables.SelectedItem is ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable) //{ // ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable t = (ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable)comboBoxTables.SelectedItem; // sb.AppendLine(scriptContainer.GetUpdate(t)); //} //else if (comboBoxTables.SelectedItem is ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable) //{ // ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable t = (ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable)comboBoxTables.SelectedItem; // if (Database.NewTables.Contains(t)) // sb.AppendLine(scriptContainer.GetCreate(t)); // else // sb.AppendLine(scriptContainer.GetDelete(t)); //} //else //{ // foreach (var tbl in Database.NewTables) // sb.AppendLine(scriptContainer.GetCreate(tbl)); // foreach (var tbl in Database.ChangedTables) // sb.AppendLine(scriptContainer.GetUpdate(tbl)); // foreach (var tbl in Database.RemovedTables) // sb.AppendLine(scriptContainer.GetDelete(tbl)); //} return(sb.ToString()); } catch (Exception e) { //MessageBox.Show(this.Parent, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(e.Message); } }
private string GetScriptForAll() { if (BusyPopulating) { return(""); } ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ScriptRunnerContainer scriptContainer = null; string db = comboBoxDatabases.SelectedItem.ToString(); if (db == "SQL Server 2005/2008/Azure") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForSqlServer; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "Oracle") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForOracle; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "MySQL") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForMySql; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "PostgreSQL") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForPostgreSql; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else if (db == "Firebird") { scriptContainer = ArchAngel.Interfaces.ProjectOptions.DatabaseScripts.Scripts.ContainerForFirebird; Slyce.Common.SyntaxEditorHelper.SetupEditorTemplateAndScriptLanguages(syntaxEditorScript, Slyce.Common.TemplateContentLanguage.Sql, Slyce.Common.SyntaxEditorHelper.ScriptLanguageTypes.CSharp, @"<%", @"%>"); } else { throw new NotImplementedException("Database type not handled yet: " + db); } try { StringBuilder sb = new StringBuilder(10000); sb.AppendLine(scriptContainer.GetHeader(Database)); //if (comboBoxTables.SelectedItem is ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable) //{ // ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable t = (ArchAngel.Interfaces.Scripting.DatabaseChanges.IChangedTable)comboBoxTables.SelectedItem; // sb.AppendLine(scriptContainer.GetUpdate(t)); //} //else if (comboBoxTables.SelectedItem is ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable) //{ // ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable t = (ArchAngel.Interfaces.Scripting.NHibernate.Model.ITable)comboBoxTables.SelectedItem; // if (Database.NewTables.Contains(t)) // sb.AppendLine(scriptContainer.GetCreate(t)); // else // sb.AppendLine(scriptContainer.GetDelete(t)); //} //else //{ // foreach (var tbl in Database.NewTables) // sb.AppendLine(scriptContainer.GetCreate(tbl)); // foreach (var tbl in Database.ChangedTables) // sb.AppendLine(scriptContainer.GetUpdate(tbl)); // foreach (var tbl in Database.RemovedTables) // sb.AppendLine(scriptContainer.GetDelete(tbl)); //} return(sb.ToString()); } catch (Exception e) { //MessageBox.Show(this.Parent, e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(e.Message); } }