From 213fe4ab37480c8a7ddadc0cc8a26c27ca7b5dfd Mon Sep 17 00:00:00 2001
From: kisantia <31145923+kisantia@users.noreply.github.com>
Date: Tue, 9 Apr 2019 15:04:59 -0700
Subject: [PATCH] Add schema compare publish changes operation (#795)
* add schema compare publish changes operation
---
.../DacFx/DacFxService.cs | 10 +-
.../Localization/sr.cs | 66 ++++++++
.../Localization/sr.resx | 24 +++
.../Localization/sr.strings | 11 +-
.../Localization/sr.xlf | 30 ++++
.../SchemaCompareGenerateScriptRequest.cs | 17 +-
.../SchemaComparePublishChangesRequest.cs | 45 +++++
.../SchemaComparePublishChangesOperation.cs | 73 +++++++++
.../SchemaCompare/SchemaCompareService.cs | 45 ++++-
.../SchemaCompareServiceTests.cs | 154 ++++++++++++++++++
10 files changed, 449 insertions(+), 26 deletions(-)
create mode 100644 src/Microsoft.SqlTools.ServiceLayer/SchemaCompare/Contracts/SchemaComparePublishChangesRequest.cs
create mode 100644 src/Microsoft.SqlTools.ServiceLayer/SchemaCompare/SchemaComparePublishChangesOperation.cs
diff --git a/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs b/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs
index 874452d3..bf311aad 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/DacFx/DacFxService.cs
@@ -67,7 +67,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
if (connInfo != null)
{
ExportOperation operation = new ExportOperation(parameters, connInfo);
- await ExecuteOperation(operation, parameters, "Export bacpac", requestContext);
+ await ExecuteOperation(operation, parameters, SR.ExportBacpacTaskName, requestContext);
}
}
catch (Exception e)
@@ -91,7 +91,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
if (connInfo != null)
{
ImportOperation operation = new ImportOperation(parameters, connInfo);
- await ExecuteOperation(operation, parameters, "Import bacpac", requestContext);
+ await ExecuteOperation(operation, parameters, SR.ImportBacpacTaskName, requestContext);
}
}
catch (Exception e)
@@ -115,7 +115,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
if (connInfo != null)
{
ExtractOperation operation = new ExtractOperation(parameters, connInfo);
- await ExecuteOperation(operation, parameters, "Extract dacpac", requestContext);
+ await ExecuteOperation(operation, parameters, SR.ExtractDacpacTaskName, requestContext);
}
}
catch (Exception e)
@@ -139,7 +139,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
if (connInfo != null)
{
DeployOperation operation = new DeployOperation(parameters, connInfo);
- await ExecuteOperation(operation, parameters, "Deploy dacpac", requestContext);
+ await ExecuteOperation(operation, parameters, SR.DeployDacpacTaskName, requestContext);
}
}
catch (Exception e)
@@ -164,7 +164,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
{
GenerateDeployScriptOperation operation = new GenerateDeployScriptOperation(parameters, connInfo);
SqlTask sqlTask = null;
- TaskMetadata metadata = TaskMetadata.Create(parameters, "Generate script", operation, ConnectionServiceInstance);
+ TaskMetadata metadata = TaskMetadata.Create(parameters, SR.GenerateScriptTaskName, operation, ConnectionServiceInstance);
// want to show filepath in task history instead of server and database
metadata.ServerName = parameters.ScriptFilePath;
diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs
index 1c8b3006..679310f4 100755
--- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs
@@ -2869,6 +2869,46 @@ namespace Microsoft.SqlTools.ServiceLayer
}
}
+ public static string ExportBacpacTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.ExportBacpacTaskName);
+ }
+ }
+
+ public static string ImportBacpacTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.ImportBacpacTaskName);
+ }
+ }
+
+ public static string ExtractDacpacTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.ExtractDacpacTaskName);
+ }
+ }
+
+ public static string DeployDacpacTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.DeployDacpacTaskName);
+ }
+ }
+
+ public static string GenerateScriptTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.GenerateScriptTaskName);
+ }
+ }
+
public static string ExtractInvalidVersion
{
get
@@ -2877,6 +2917,14 @@ namespace Microsoft.SqlTools.ServiceLayer
}
}
+ public static string PublishChangesTaskName
+ {
+ get
+ {
+ return Keys.GetString(Keys.PublishChangesTaskName);
+ }
+ }
+
public static string ConnectionServiceListDbErrorNotConnected(string uri)
{
return Keys.GetString(Keys.ConnectionServiceListDbErrorNotConnected, uri);
@@ -4190,9 +4238,27 @@ namespace Microsoft.SqlTools.ServiceLayer
public const string Error_ExistingDirectoryName = "Error_ExistingDirectoryName";
+ public const string ExportBacpacTaskName = "ExportBacpacTaskName";
+
+
+ public const string ImportBacpacTaskName = "ImportBacpacTaskName";
+
+
+ public const string ExtractDacpacTaskName = "ExtractDacpacTaskName";
+
+
+ public const string DeployDacpacTaskName = "DeployDacpacTaskName";
+
+
+ public const string GenerateScriptTaskName = "GenerateScriptTaskName";
+
+
public const string ExtractInvalidVersion = "ExtractInvalidVersion";
+ public const string PublishChangesTaskName = "PublishChangesTaskName";
+
+
private Keys()
{ }
diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx
index 7a9fe996..433bb93f 100755
--- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx
+++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx
@@ -1687,8 +1687,32 @@
For directory {0} a file with name {1} already exist
+
+ Export bacpac
+
+
+
+ Import bacpac
+
+
+
+ Extract dacpac
+
+
+
+ Deploy dacpac
+
+
+
+ Generate script
+
+
Invalid version '{0}' passed. Version must be in the format x.x.x.x where x is a number.
+
+ Apply schema compare changes
+
+
diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings
index 5bf96de0..ade10eee 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings
+++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings
@@ -786,4 +786,13 @@ Error_ExistingDirectoryName = For directory {0} a file with name {1} already exi
############################################################################
# DacFx
-ExtractInvalidVersion = Invalid version '{0}' passed. Version must be in the format x.x.x.x where x is a number.
\ No newline at end of file
+ExportBacpacTaskName = Export bacpac
+ImportBacpacTaskName = Import bacpac
+ExtractDacpacTaskName = Extract dacpac
+DeployDacpacTaskName = Deploy dacpac
+GenerateScriptTaskName = Generate script
+ExtractInvalidVersion = Invalid version '{0}' passed. Version must be in the format x.x.x.x where x is a number.
+
+############################################################################
+# Schema Compare
+PublishChangesTaskName = Apply schema compare changes
\ No newline at end of file
diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf
index 08ae2fed..8c44ea19 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf
+++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf
@@ -1961,6 +1961,36 @@
Invalid version '{0}' passed. Version must be in the format x.x.x.x where x is a number.
+
+ Export bacpac
+ Export bacpac
+
+
+
+ Import bacpac
+ Import bacpac
+
+
+
+
+ Deploy dacpac
+ Deploy dacpac
+
+
+
+ Generate script
+ Generate script
+
+
+
+ Apply schema compare changes
+ Apply schema compare changes
+
+