Getting include objects types names from the DacFx to avoid the duplication and hardcoded values in the ADS

This commit is contained in:
ssreerama
2022-06-21 12:06:31 -07:00
parent c2a238acb3
commit 8d32704823

View File

@@ -274,6 +274,8 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx.Contracts
private Dictionary<string, string> _displayNameMapDict;
public Dictionary<string, int> IncludeObjectsTable;
#endregion
/// <summary>
@@ -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);
}
/// <summary>
/// Sets include objects enum values and number in to the dictionary
/// </summary>
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));
}
/// <summary>
/// initialize deployment options from the options in a publish profile.xml
/// </summary>