diff --git a/src/Microsoft.SqlTools.ServiceLayer/Admin/AdminService.cs b/src/Microsoft.SqlTools.ServiceLayer/Admin/AdminService.cs
index 07d1c5bc..6c93b982 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/Admin/AdminService.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/Admin/AdminService.cs
@@ -148,7 +148,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Admin
/// connection info
/// flag indicating whether to create taskhelper for existing database or not
///
- private static DatabaseTaskHelper CreateDatabaseTaskHelper(ConnectionInfo connInfo, bool databaseExists = false)
+ internal static DatabaseTaskHelper CreateDatabaseTaskHelper(ConnectionInfo connInfo, bool databaseExists = false)
{
XmlDocument xmlDoc = CreateDataContainerDocument(connInfo, databaseExists);
char[] passwordArray = connInfo.ConnectionDetails.Password.ToCharArray();
diff --git a/src/Microsoft.SqlTools.ServiceLayer/DisasterRecovery/DisasterRecoveryService.cs b/src/Microsoft.SqlTools.ServiceLayer/DisasterRecovery/DisasterRecoveryService.cs
index 0eba8357..384805a9 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/DisasterRecovery/DisasterRecoveryService.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/DisasterRecovery/DisasterRecoveryService.cs
@@ -18,14 +18,14 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
{
private static readonly Lazy instance = new Lazy(() => new DisasterRecoveryService());
private static ConnectionService connectionService = null;
- private BackupUtilities backupFactory;
+ private BackupUtilities backupUtilities;
///
/// Default, parameterless constructor.
///
internal DisasterRecoveryService()
{
- this.backupFactory = new BackupUtilities();
+ this.backupUtilities = new BackupUtilities();
}
///
@@ -78,12 +78,12 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
if (connInfo != null)
{
- CDataContainer dataContainer = GetDataContainer(connInfo);
+ DatabaseTaskHelper helper = AdminService.CreateDatabaseTaskHelper(connInfo, databaseExists: true);
SqlConnection sqlConn = GetSqlConnection(connInfo);
if (sqlConn != null)
{
- DisasterRecoveryService.Instance.InitializeBackup(dataContainer, sqlConn);
- BackupConfigInfo backupConfigInfo = DisasterRecoveryService.Instance.GetDatabaseInfo(sqlConn.Database);
+ DisasterRecoveryService.Instance.InitializeBackup(helper.DataContainer, sqlConn);
+ BackupConfigInfo backupConfigInfo = DisasterRecoveryService.Instance.GetBackupConfigInfo(sqlConn.Database);
backupConfigInfo.DatabaseInfo = AdminService.GetDatabaseInfo(connInfo);
response.BackupConfigInfo = backupConfigInfo;
}
@@ -91,44 +91,6 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
await requestContext.SendResult(response);
}
-
- internal static CDataContainer GetDataContainer(ConnectionInfo connInfo)
- {
- CDataContainer dataContainer = null;
-
- if (connInfo != null)
- {
- char[] passwordArray = connInfo.ConnectionDetails.Password.ToCharArray();
- if (string.Equals(connInfo.ConnectionDetails.AuthenticationType, "SqlLogin", StringComparison.OrdinalIgnoreCase))
- {
- unsafe
- {
- fixed (char* passwordPtr = passwordArray)
- {
- dataContainer = new CDataContainer(
- CDataContainer.ServerType.SQL,
- connInfo.ConnectionDetails.ServerName,
- false,
- connInfo.ConnectionDetails.UserName,
- new System.Security.SecureString(passwordPtr, passwordArray.Length),
- string.Empty);
- }
- }
- }
- else
- {
- dataContainer = new CDataContainer(
- CDataContainer.ServerType.SQL,
- connInfo.ConnectionDetails.ServerName,
- true,
- null,
- null,
- null);
- }
- }
-
- return dataContainer;
- }
///
/// Handles a backup request
@@ -141,15 +103,14 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
DisasterRecoveryService.ConnectionServiceInstance.TryFindConnection(
backupParams.OwnerUri,
out connInfo);
- CDataContainer dataContainer;
if (connInfo != null)
{
- dataContainer = GetDataContainer(connInfo);
+ DatabaseTaskHelper helper = AdminService.CreateDatabaseTaskHelper(connInfo, databaseExists: true);
SqlConnection sqlConn = GetSqlConnection(connInfo);
if (sqlConn != null)
{
- DisasterRecoveryService.Instance.InitializeBackup(dataContainer, sqlConn);
+ DisasterRecoveryService.Instance.InitializeBackup(helper.DataContainer, sqlConn);
DisasterRecoveryService.Instance.SetBackupInput(backupParams.BackupInfo);
DisasterRecoveryService.Instance.PerformBackup();
}
@@ -186,22 +147,22 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
private void InitializeBackup(CDataContainer dataContainer, SqlConnection sqlConnection)
{
- this.backupFactory.Initialize(dataContainer, sqlConnection);
+ this.backupUtilities.Initialize(dataContainer, sqlConnection);
}
private void SetBackupInput(BackupInfo input)
{
- this.backupFactory.SetBackupInput(input);
+ this.backupUtilities.SetBackupInput(input);
}
private void PerformBackup()
{
- this.backupFactory.PerformBackup();
+ this.backupUtilities.PerformBackup();
}
- private BackupConfigInfo GetDatabaseInfo(string databaseName)
+ private BackupConfigInfo GetBackupConfigInfo(string databaseName)
{
- return this.backupFactory.GetBackupConfigInfo(databaseName);
+ return this.backupUtilities.GetBackupConfigInfo(databaseName);
}
}