diff --git a/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs b/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs index b0760aaf..82519aac 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs @@ -227,7 +227,9 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx { try { - TaskMetadata metadata = TaskMetadata.Create(parameters, taskName, operation, ConnectionServiceInstance); + // show file location for export and extract operations + string targetLocation = (operation is ExportOperation || operation is ExtractOperation) ? parameters.PackageFilePath : null; + TaskMetadata metadata = TaskMetadata.Create(parameters, taskName, operation, ConnectionServiceInstance, targetLocation); // put appropriate database name since connection passed was to master metadata.DatabaseName = parameters.DatabaseName; diff --git a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/Contracts/TaskInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/Contracts/TaskInfo.cs index 2f7822a8..944e3762 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/Contracts/TaskInfo.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/Contracts/TaskInfo.cs @@ -35,6 +35,11 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices.Contracts /// public string DatabaseName { get; set; } + /// + /// Target location for this task + /// + public string TargetLocation { get; set; } + /// /// Task name which defines the type of the task (e.g. CreateDatabase, Backup) /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/SqlTask.cs b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/SqlTask.cs index 324cd734..f1bf573d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/SqlTask.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/SqlTask.cs @@ -474,6 +474,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices Description = TaskMetadata.Description, TaskExecutionMode = TaskMetadata.TaskExecutionMode, IsCancelable = this.TaskToCancel != null, + TargetLocation = TaskMetadata.TargetLocation, }; } diff --git a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/TaskMetadata.cs b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/TaskMetadata.cs index 0197e795..e4154bb8 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/TaskServices/TaskMetadata.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/TaskServices/TaskMetadata.cs @@ -41,6 +41,11 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices /// public string DatabaseName { get; set; } + /// + /// Target location of this task + /// + public string TargetLocation { get; set; } + /// /// Data required to perform the task /// @@ -59,7 +64,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices /// Task operation /// Connection Service /// Task metadata - public static TaskMetadata Create(IRequestParams requestParam, string taskName, ITaskOperation taskOperation, ConnectionService connectionService) + public static TaskMetadata Create(IRequestParams requestParam, string taskName, ITaskOperation taskOperation, ConnectionService connectionService, string targetLocation = null) { TaskMetadata taskMetadata = new TaskMetadata(); ConnectionInfo connInfo; @@ -90,6 +95,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices taskMetadata.TaskOperation = taskOperation; taskMetadata.OwnerUri = requestParam.OwnerUri; + taskMetadata.TargetLocation = targetLocation; return taskMetadata; }