Modify Get Connection String Request to use connection details (#1394)

* connection string accepts connectionInfo

* get connection string from disconnected scenarios
This commit is contained in:
Vasu Bhog
2022-02-10 20:48:39 -08:00
committed by GitHub
parent 1693843ab0
commit 8120858ad2
4 changed files with 67 additions and 22 deletions

View File

@@ -1317,27 +1317,34 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
{
string connectionString = string.Empty;
ConnectionInfo info;
if (TryFindConnection(connStringParams.OwnerUri, out info))
SqlConnectionStringBuilder connStringBuilder;
try
{
// set connection string using connection uri if connection details are undefined
if (connStringParams.ConnectionDetails == null)
{
TryFindConnection(connStringParams.OwnerUri, out info);
connStringBuilder = CreateConnectionStringBuilder(info.ConnectionDetails);
}
// set connection string using connection details
else
{
connStringBuilder = CreateConnectionStringBuilder(connStringParams.ConnectionDetails as ConnectionDetails);
}
if (!connStringParams.IncludePassword)
{
connStringBuilder.Password = ConnectionService.PasswordPlaceholder;
}
// default connection string application name to always be included unless set to false
if (!connStringParams.IncludeApplicationName.HasValue || connStringParams.IncludeApplicationName.Value == true)
{
connStringBuilder.ApplicationName = "sqlops-connection-string";
}
connectionString = connStringBuilder.ConnectionString;
}
catch (Exception e)
{
try
{
SqlConnectionStringBuilder connStringBuilder = CreateConnectionStringBuilder(info.ConnectionDetails);
if (!connStringParams.IncludePassword)
{
connStringBuilder.Password = ConnectionService.PasswordPlaceholder;
}
// default connection string application name to always be included unless set to false
if (!connStringParams.IncludeApplicationName.HasValue || connStringParams.IncludeApplicationName.Value == true)
{
connStringBuilder.ApplicationName = "sqlops-connection-string";
}
connectionString = connStringBuilder.ConnectionString;
}
catch (Exception e)
{
await requestContext.SendError(e.ToString());
}
await requestContext.SendError(e.ToString());
}
await requestContext.SendResult(connectionString);