From 8d32704823cc3afac3017887d3bf765b513b5e20 Mon Sep 17 00:00:00 2001 From: ssreerama Date: Tue, 21 Jun 2022 12:06:31 -0700 Subject: [PATCH] Getting include objects types names from the DacFx to avoid the duplication and hardcoded values in the ADS --- .../DacFx/Contracts/DeploymentOptions.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/DeploymentOptions.cs b/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/DeploymentOptions.cs index 29da5d3c..05530700 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/DeploymentOptions.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/DeploymentOptions.cs @@ -274,6 +274,8 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx.Contracts private Dictionary _displayNameMapDict; + public Dictionary IncludeObjectsTable; + #endregion /// @@ -406,6 +408,9 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx.Contracts // Setting Display names for all dacDeploy options SetDisplayNameForOption(); + // Preparing Include Object types options table + CreateIncludeObjectsTable(); + // Adding these defaults to ensure behavior similarity with other tools. Dacfx and SSMS import/export wizards use these defaults. // Tracking the full fix : https://github.com/microsoft/azuredatastudio/issues/5599 options.AllowDropBlockingAssemblies = true; @@ -436,9 +441,22 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx.Contracts // Setting Display names for all dacDeploy options SetDisplayNameForOption(); + // Preparing Include Object types options table + CreateIncludeObjectsTable(); + SetOptions(options); } + /// + /// Sets include objects enum values and number in to the dictionary + /// + public void CreateIncludeObjectsTable() + { + // Set include objects table data + var objectTypeEnum = typeof(ObjectType); + IncludeObjectsTable = Enum.GetNames(objectTypeEnum).ToDictionary(t => t, t => (int)System.Enum.Parse(objectTypeEnum, t)); + } + /// /// initialize deployment options from the options in a publish profile.xml ///