private MenuItem BuildCopyConnectionMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd) { var copyCeConnectionCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.CopyCeDatabase); var copyCeConnectionMenuItem = new MenuItem { InputGestureText = "Ctrl+C", Header = "Copy Database File", Icon = ImageHelper.GetImageFromResource("../resources/Copy_6524.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters }; copyCeConnectionMenuItem.CommandBindings.Add(copyCeConnectionCommandBinding); return(copyCeConnectionMenuItem); }
private MenuItem BuildRepairRecoverPossibleMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd) { var repairRecoverPossibleCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.RepairDatabaseRecoverAllPossibleRows); var repairRecoverPossibleMenuItem = new MenuItem { Header = "Repair (recover all possible)", Icon = ImageHelper.GetImageFromResource("../resources/Hammer_Builder_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, ToolTip = "Repairs a corrupted database" }; repairRecoverPossibleMenuItem.CommandBindings.Add(repairRecoverPossibleCommandBinding); return(repairRecoverPossibleMenuItem); }
private MenuItem BuildVerifyMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd) { var verifyCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.VerifyDatabase); var verifyMenuItem = new MenuItem { Header = "Verify", Icon = ImageHelper.GetImageFromResource("../resources/Hammer_Builder_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, ToolTip = "Verify the integrity of the database (enhanced)" }; verifyMenuItem.CommandBindings.Add(verifyCommandBinding); return(verifyMenuItem); }
private MenuItem BuildPwdMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd) { var setPwdCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.SetPassword); var pwdMenuItem = new MenuItem { Header = "Set Password", Icon = ImageHelper.GetImageFromResource("../resources/Hammer_Builder_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, ToolTip = "Set the database password" }; pwdMenuItem.CommandBindings.Add(setPwdCommandBinding); return(pwdMenuItem); }
private MenuItem BuildScriptUpgradeMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd) { var scriptUpgradeCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.UpgradeTo40); var scriptUpgradeMenuItem = new MenuItem { Header = "Upgrade to version 4.0...", Icon = ImageHelper.GetImageFromResource("../resources/ExportReportData_10565.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, }; scriptUpgradeMenuItem.CommandBindings.Add(scriptUpgradeCommandBinding); scriptUpgradeMenuItem.ToolTip = "Create a copy of this database in 4.0 format"; return(scriptUpgradeMenuItem); }
private MenuItem BuildSyncFxProvisionMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd, DatabaseType dbType, bool isSyncFxInstalled) { var syncFxProvisionCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.SyncFxProvisionScope); var syncFxProvisionMenuItem = new MenuItem { Header = "Provision Sync Framework Scope...", Icon = ImageHelper.GetImageFromResource("../resources/Synchronize_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, }; syncFxProvisionMenuItem.CommandBindings.Add(syncFxProvisionCommandBinding); syncFxProvisionMenuItem.IsEnabled = dbType == DatabaseType.SQLCE35 && isSyncFxInstalled; return(syncFxProvisionMenuItem); }
private MenuItem BuildSyncFxMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd, DatabaseType dbType, bool isSyncFxInstalled) { var syncFxCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.SyncFxGenerateSyncCodeInProject); var syncFxMenuItem = new MenuItem { Header = "Add Sync Framework Class to current Project...", Icon = ImageHelper.GetImageFromResource("../resources/Synchronize_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, }; syncFxMenuItem.CommandBindings.Add(syncFxCommandBinding); syncFxMenuItem.IsEnabled = dbType == DatabaseType.SQLCE35 && isSyncFxInstalled; return(syncFxMenuItem); }
private MenuItem BuildSyncFxGenerateSnapshotMenuItem(DatabaseMenuCommandParameters databaseMenuCommandParameters, SqlCeDatabaseMenuCommandsHandler dcmd, DatabaseType dbType, bool isSyncFxInstalled) { var syncFxGenerateSnapshotCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.SyncFxGenerateSnapshot); var syncFxGenerateSnapshotMenuItem = new MenuItem { Header = "Generate snapshot database to initialize other clients...", Icon = ImageHelper.GetImageFromResource("../resources/Synchronize_16xLG.png"), Command = DatabaseMenuCommands.DatabaseCommand, CommandParameter = databaseMenuCommandParameters, }; syncFxGenerateSnapshotMenuItem.CommandBindings.Add(syncFxGenerateSnapshotCommandBinding); syncFxGenerateSnapshotMenuItem.IsEnabled = dbType == DatabaseType.SQLCE35 && isSyncFxInstalled; return(syncFxGenerateSnapshotMenuItem); }
public DatabaseContextMenu(DatabaseMenuCommandParameters databaseMenuCommandParameters, ExplorerToolWindow parent) { var dbType = databaseMenuCommandParameters.DatabaseInfo.DatabaseType; var isSqlCe = dbType == DatabaseType.SQLCE35 || dbType == DatabaseType.SQLCE40; var dcmd = new DatabaseMenuCommandsHandler(parent); var cecmd = new SqlCeDatabaseMenuCommandsHandler(parent); Items.Add(BuildShowSqlEditorMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(BuildCreateTableMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); var scriptDatabaseRootMenuItem = new MenuItem { Header = "Script Database", Icon = ImageHelper.GetImageFromResource("../resources/script_16xLG.png"), }; // Database scripting items var scriptDatabaseCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.ScriptDatabase); scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseSchemaMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseSchemaDataMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); if (isSqlCe) { scriptDatabaseRootMenuItem.Items.Add(BuildScriptAzureSchemaDataMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); } if (isSqlCe) { scriptDatabaseRootMenuItem.Items.Add(BuildScriptSqliteSchemaDataMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); } if (isSqlCe) { scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseSchemaDataBlobMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); } scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseDataMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); if (isSqlCe) { scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseDataForServerMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); } if (isSqlCe) { scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseDiffMenuItem(databaseMenuCommandParameters, dcmd)); } //End Database scripting items Items.Add(scriptDatabaseRootMenuItem); Items.Add(new Separator()); var maintenanceMenuItem = new MenuItem { Header = "Maintenance", Icon = ImageHelper.GetImageFromResource("../resources/Hammer_Builder_16xLG.png"), }; maintenanceMenuItem.Items.Add(BuildPwdMenuItem(databaseMenuCommandParameters, cecmd)); var shrinkMenuItem = BuildShrinkMenuItem(databaseMenuCommandParameters, dcmd); maintenanceMenuItem.Items.Add(shrinkMenuItem); var compactMenuItem = BuildCompactMenuItem(databaseMenuCommandParameters, dcmd); maintenanceMenuItem.Items.Add(compactMenuItem); maintenanceMenuItem.Items.Add(BuildVerifyMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairDeleteMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairRecoverAllMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairRecoverPossibleMenuItem(databaseMenuCommandParameters, cecmd)); if (isSqlCe) { Items.Add(maintenanceMenuItem); Items.Add(new Separator()); } if (dbType == DatabaseType.SQLite) { maintenanceMenuItem.Items.Clear(); compactMenuItem.Header = "Vacuum"; compactMenuItem.ToolTip = "Rebuilds the database file, repacking it into a minimal amount of disk space"; shrinkMenuItem.Header = "Re-index"; shrinkMenuItem.ToolTip = "Deletes and recreates indexes"; maintenanceMenuItem.Items.Add(compactMenuItem); maintenanceMenuItem.Items.Add(shrinkMenuItem); Items.Add(maintenanceMenuItem); Items.Add(new Separator()); } Items.Add(BuildScriptDatabaseExportMenuItem(databaseMenuCommandParameters, dcmd)); if (dbType == DatabaseType.SQLCE35 && DataConnectionHelper.IsV40Installed()) { Items.Add(BuildScriptUpgradeMenuItem(databaseMenuCommandParameters, cecmd)); } Items.Add(new Separator()); if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(BuildScriptDatabaseGraphMenuItem(databaseMenuCommandParameters, dcmd)); } Items.Add(BuildDocDatabaseMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); var generateCodeRootMenuItem = new MenuItem { Header = "Generate Code", Icon = ImageHelper.GetImageFromResource("../resources/Schema_16xLG.png"), }; #if SSMS #else if (dbType != DatabaseType.SQLCE35) { generateCodeRootMenuItem.Items.Add(BuildEfCoreModelMenuItem(databaseMenuCommandParameters, dcmd)); } #endif if (dbType == DatabaseType.SQLite) { generateCodeRootMenuItem.Items.Add(BuildScriptModelMenuItem(databaseMenuCommandParameters, dcmd)); } if (isSqlCe && SqlCeToolboxPackage.VsSupportsEf6()) { generateCodeRootMenuItem.Items.Add(BuildScriptEfPocoMenuItem(databaseMenuCommandParameters, dcmd)); } #if SSMS #else var scriptDcCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, cecmd.GenerateDataContextInProject); if (isSqlCe) { generateCodeRootMenuItem.Items.Add(BuildScriptDcMenuItem(databaseMenuCommandParameters, scriptDcCommandBinding)); } if (isSqlCe) { generateCodeRootMenuItem.Items.Add(BuildScriptWpdcMenuItem(databaseMenuCommandParameters, scriptDcCommandBinding, dbType)); } if (isSqlCe) { generateCodeRootMenuItem.Items.Add(new Separator()); } #endif var syncFxRootMenuItem = new MenuItem { Header = "Sync Framework Tools", Icon = ImageHelper.GetImageFromResource("../resources/Synchronize_16xLG.png"), }; var isSyncFxInstalled = DataConnectionHelper.IsSyncFx21Installed(); syncFxRootMenuItem.Items.Add(BuildSyncFxProvisionMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); syncFxRootMenuItem.Items.Add(BuildSyncFxDeprovisionMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); syncFxRootMenuItem.Items.Add(BuildSyncFxGenerateSnapshotMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); if (isSqlCe) { generateCodeRootMenuItem.Items.Add(BuildSyncFxMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); } if (isSqlCe) { generateCodeRootMenuItem.Items.Add(syncFxRootMenuItem); } if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(generateCodeRootMenuItem); } if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(new Separator()); } if (isSqlCe) { Items.Add(BuildAddDescriptionMenuItem(databaseMenuCommandParameters, dcmd)); } Items.Add(BuildGenerateInfoMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); Items.Add(BuildCopyConnectionMenuItem(databaseMenuCommandParameters, cecmd)); if (!databaseMenuCommandParameters.DatabaseInfo.FromServerExplorer) { Items.Add(BuildRenameConnectionMenuItem(databaseMenuCommandParameters, dcmd)); } Items.Add(BuildRemoveCeConnectionMenuItem(databaseMenuCommandParameters, dcmd)); }
public SqlCeDatabaseContextMenu(DatabaseMenuCommandParameters databaseMenuCommandParameters, ExplorerToolWindow parent) { var itemBuilder = new DatabaseContextMenuItems(); var dbType = databaseMenuCommandParameters.DatabaseInfo.DatabaseType; if (!(dbType == DatabaseType.SQLCE35 || dbType == DatabaseType.SQLCE40)) { return; } var dcmd = new DatabaseMenuCommandsHandler(parent); var cecmd = new SqlCeDatabaseMenuCommandsHandler(parent); Items.Add(itemBuilder.BuildShowSqlEditorMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(itemBuilder.BuildCreateTableMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); var scriptDatabaseRootMenuItem = new MenuItem { Header = "Script Database", Icon = ImageHelper.GetImageFromResource("../resources/script_16xLG.png"), }; var toolTip = new ToolTip { Content = "Generate a SQL Server Compact/SQLite compatible database script" }; // Database scripting items var scriptDatabaseCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, dcmd.ScriptDatabase); scriptDatabaseRootMenuItem.Items.Add(itemBuilder.BuildScriptDatabaseSchemaMenuItem(databaseMenuCommandParameters, toolTip, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(itemBuilder.BuildScriptDatabaseSchemaDataMenuItem(databaseMenuCommandParameters, toolTip, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(BuildScriptAzureSchemaDataMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(itemBuilder.BuildScriptDatabaseSchemaDataSqLiteMenuItem(databaseMenuCommandParameters, toolTip, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(itemBuilder.BuildScriptDatabaseSchemaDataBlobMenuItem(databaseMenuCommandParameters, toolTip, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(itemBuilder.BuildScriptDatabaseDataMenuItem(databaseMenuCommandParameters, toolTip, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseDataForServerMenuItem(databaseMenuCommandParameters, scriptDatabaseCommandBinding)); scriptDatabaseRootMenuItem.Items.Add(BuildScriptDatabaseDiffMenuItem(databaseMenuCommandParameters, dcmd)); //End Database scripting items Items.Add(scriptDatabaseRootMenuItem); Items.Add(new Separator()); var maintenanceMenuItem = new MenuItem { Header = "Maintenance", Icon = ImageHelper.GetImageFromResource("../resources/Hammer_Builder_16xLG.png"), }; maintenanceMenuItem.Items.Add(BuildPwdMenuItem(databaseMenuCommandParameters, cecmd)); var shrinkMenuItem = itemBuilder.BuildShrinkMenuItem(databaseMenuCommandParameters, dcmd); maintenanceMenuItem.Items.Add(shrinkMenuItem); var compactMenuItem = itemBuilder.BuildCompactMenuItem(databaseMenuCommandParameters, dcmd); maintenanceMenuItem.Items.Add(compactMenuItem); maintenanceMenuItem.Items.Add(BuildVerifyMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairDeleteMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairRecoverAllMenuItem(databaseMenuCommandParameters, cecmd)); maintenanceMenuItem.Items.Add(BuildRepairRecoverPossibleMenuItem(databaseMenuCommandParameters, cecmd)); Items.Add(maintenanceMenuItem); Items.Add(new Separator()); Items.Add(itemBuilder.BuildScriptDatabaseExportMenuItem(databaseMenuCommandParameters, dcmd)); if (dbType == DatabaseType.SQLCE35 && Helpers.RepositoryHelper.IsV40Installed()) { Items.Add(BuildScriptUpgradeMenuItem(databaseMenuCommandParameters, cecmd)); } Items.Add(new Separator()); if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(itemBuilder.BuildScriptDatabaseGraphMenuItem(databaseMenuCommandParameters, dcmd)); } Items.Add(itemBuilder.BuildDocDatabaseMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); var generateCodeRootMenuItem = new MenuItem { Header = "Generate Code", Icon = ImageHelper.GetImageFromResource("../resources/Schema_16xLG.png"), }; #if SSMS #else var scriptDcCommandBinding = new CommandBinding(DatabaseMenuCommands.DatabaseCommand, cecmd.GenerateDataContextInProject); generateCodeRootMenuItem.Items.Add(BuildScriptDcMenuItem(databaseMenuCommandParameters, scriptDcCommandBinding)); generateCodeRootMenuItem.Items.Add(BuildScriptWpdcMenuItem(databaseMenuCommandParameters, scriptDcCommandBinding, dbType)); generateCodeRootMenuItem.Items.Add(new Separator()); #endif var syncFxRootMenuItem = new MenuItem { Header = "Sync Framework Tools", Icon = ImageHelper.GetImageFromResource("../resources/Synchronize_16xLG.png"), }; var isSyncFxInstalled = DataConnectionHelper.IsSyncFx21Installed(); syncFxRootMenuItem.Items.Add(BuildSyncFxProvisionMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); syncFxRootMenuItem.Items.Add(BuildSyncFxDeprovisionMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); syncFxRootMenuItem.Items.Add(BuildSyncFxGenerateSnapshotMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); generateCodeRootMenuItem.Items.Add(BuildSyncFxMenuItem(databaseMenuCommandParameters, cecmd, dbType, isSyncFxInstalled)); generateCodeRootMenuItem.Items.Add(syncFxRootMenuItem); if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(generateCodeRootMenuItem); } if (SqlCeToolboxPackage.IsVsExtension) { Items.Add(new Separator()); } Items.Add(BuildAddDescriptionMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(itemBuilder.BuildGenerateInfoMenuItem(databaseMenuCommandParameters, dcmd)); Items.Add(new Separator()); Items.Add(BuildCopyConnectionMenuItem(databaseMenuCommandParameters, cecmd)); Items.Add(itemBuilder.BuildRemoveConnectionMenuItem(databaseMenuCommandParameters, dcmd)); }