diff --git a/extensions/sql-database-projects/src/controllers/projectController.ts b/extensions/sql-database-projects/src/controllers/projectController.ts index 172f9991f4..93fea7ea86 100644 --- a/extensions/sql-database-projects/src/controllers/projectController.ts +++ b/extensions/sql-database-projects/src/controllers/projectController.ts @@ -1382,17 +1382,21 @@ export class ProjectsController { if (model.action === UpdateProjectAction.Compare) { await vscode.commands.executeCommand(constants.schemaCompareRunComparisonCommand, model.sourceEndpointInfo, model.targetEndpointInfo, true, undefined); } else if (model.action === UpdateProjectAction.Update) { - await vscode.window.withProgress( - { - location: vscode.ProgressLocation.Notification, - title: constants.updatingProjectFromDatabase(path.basename(model.targetEndpointInfo.projectFilePath), model.sourceEndpointInfo.databaseName), - cancellable: false - }, async (_progress, _token) => { - return this.schemaCompareAndUpdateProject(model.sourceEndpointInfo, model.targetEndpointInfo); - }); + await vscode.window.showWarningMessage(constants.applyConfirmation, { modal: true }, constants.yesString).then(async (result) => { + if (result === constants.yesString) { + await vscode.window.withProgress( + { + location: vscode.ProgressLocation.Notification, + title: constants.updatingProjectFromDatabase(path.basename(model.targetEndpointInfo.projectFilePath), model.sourceEndpointInfo.databaseName), + cancellable: false + }, async (_progress, _token) => { + return this.schemaCompareAndUpdateProject(model.sourceEndpointInfo, model.targetEndpointInfo); + }); - void vscode.commands.executeCommand(constants.refreshDataWorkspaceCommand); - utils.getDataWorkspaceExtensionApi().showProjectsView(); + void vscode.commands.executeCommand(constants.refreshDataWorkspaceCommand); + utils.getDataWorkspaceExtensionApi().showProjectsView(); + } + }); } else { throw new Error(`Unknown UpdateProjectAction: ${model.action}`); } diff --git a/extensions/sql-database-projects/src/dialogs/updateProjectFromDatabaseDialog.ts b/extensions/sql-database-projects/src/dialogs/updateProjectFromDatabaseDialog.ts index 69034e2ecf..6cc5ce563b 100644 --- a/extensions/sql-database-projects/src/dialogs/updateProjectFromDatabaseDialog.ts +++ b/extensions/sql-database-projects/src/dialogs/updateProjectFromDatabaseDialog.ts @@ -497,74 +497,70 @@ export class UpdateProjectFromDatabaseDialog { } public async handleUpdateButtonClick(): Promise { - await vscode.window.showWarningMessage(constants.applyConfirmation, { modal: true }, constants.yesString).then(async (result) => { - if (result === constants.yesString) { - const serverDropdownValue = this.serverDropdown!.value! as azdata.CategoryValue as ConnectionDropdownValue; - const ownerUri = await getAzdataApi()!.connection.getUriForConnection(serverDropdownValue.connection.connectionId); + const serverDropdownValue = this.serverDropdown!.value! as azdata.CategoryValue as ConnectionDropdownValue; + const ownerUri = await getAzdataApi()!.connection.getUriForConnection(serverDropdownValue.connection.connectionId); - let connection = (await getAzdataApi()!.connection.getConnections(true)).filter(con => con.connectionId === serverDropdownValue.connection.connectionId)[0]; - connection.databaseName = this.databaseDropdown!.value! as string; + let connection = (await getAzdataApi()!.connection.getConnections(true)).filter(con => con.connectionId === serverDropdownValue.connection.connectionId)[0]; + connection.databaseName = this.databaseDropdown!.value! as string; - const credentials = await getAzdataApi()!.connection.getCredentials(connection.connectionId); - if (credentials.hasOwnProperty('password')) { - connection.password = connection.options.password = credentials.password; - } + const credentials = await getAzdataApi()!.connection.getCredentials(connection.connectionId); + if (credentials.hasOwnProperty('password')) { + connection.password = connection.options.password = credentials.password; + } - const connectionDetails: azdata.IConnectionProfile = { - id: connection.connectionId, - userName: connection.userName, - password: connection.password, - serverName: connection.serverName, - databaseName: connection.databaseName, - connectionName: connection.connectionName, - providerName: connection.providerId, - groupId: connection.groupId, - groupFullName: connection.groupFullName, - authenticationType: connection.authenticationType, - savePassword: connection.savePassword, - saveProfile: connection.saveProfile, - options: connection.options, - }; + const connectionDetails: azdata.IConnectionProfile = { + id: connection.connectionId, + userName: connection.userName, + password: connection.password, + serverName: connection.serverName, + databaseName: connection.databaseName, + connectionName: connection.connectionName, + providerName: connection.providerId, + groupId: connection.groupId, + groupFullName: connection.groupFullName, + authenticationType: connection.authenticationType, + savePassword: connection.savePassword, + saveProfile: connection.saveProfile, + options: connection.options, + }; - const sourceEndpointInfo: mssql.SchemaCompareEndpointInfo = { - endpointType: mssql.SchemaCompareEndpointType.Database, - databaseName: this.databaseDropdown!.value! as string, - serverDisplayName: serverDropdownValue.displayName, - serverName: serverDropdownValue.name!, - connectionDetails: connectionDetails, - ownerUri: ownerUri, - projectFilePath: '', - folderStructure: '', - targetScripts: [], - dataSchemaProvider: '', - packageFilePath: '', - connectionName: serverDropdownValue.connection.options.connectionName - }; + const sourceEndpointInfo: mssql.SchemaCompareEndpointInfo = { + endpointType: mssql.SchemaCompareEndpointType.Database, + databaseName: this.databaseDropdown!.value! as string, + serverDisplayName: serverDropdownValue.displayName, + serverName: serverDropdownValue.name!, + connectionDetails: connectionDetails, + ownerUri: ownerUri, + projectFilePath: '', + folderStructure: '', + targetScripts: [], + dataSchemaProvider: '', + packageFilePath: '', + connectionName: serverDropdownValue.connection.options.connectionName + }; - const targetEndpointInfo: mssql.SchemaCompareEndpointInfo = { - endpointType: mssql.SchemaCompareEndpointType.Project, - projectFilePath: this.projectFileTextBox!.value!, - folderStructure: this.folderStructureDropDown!.value as string, - targetScripts: [], - dataSchemaProvider: '', - connectionDetails: connectionDetails, - databaseName: '', - serverDisplayName: '', - serverName: '', - ownerUri: '', - packageFilePath: '', - }; + const targetEndpointInfo: mssql.SchemaCompareEndpointInfo = { + endpointType: mssql.SchemaCompareEndpointType.Project, + projectFilePath: this.projectFileTextBox!.value!, + folderStructure: this.folderStructureDropDown!.value as string, + targetScripts: [], + dataSchemaProvider: '', + connectionDetails: connectionDetails, + databaseName: '', + serverDisplayName: '', + serverName: '', + ownerUri: '', + packageFilePath: '', + }; - const model: UpdateProjectDataModel = { - sourceEndpointInfo: sourceEndpointInfo, - targetEndpointInfo: targetEndpointInfo, - action: this.action! - }; - void this.updateProjectFromDatabaseCallback!(model); - } + const model: UpdateProjectDataModel = { + sourceEndpointInfo: sourceEndpointInfo, + targetEndpointInfo: targetEndpointInfo, + action: this.action! + }; - this.dispose(); - }); + void this.updateProjectFromDatabaseCallback!(model); + this.dispose(); } async validate(): Promise {