From 34d969c6ad50c80f37be58138da1f836e823e5e4 Mon Sep 17 00:00:00 2001 From: Aasim Khan Date: Fri, 5 May 2023 17:10:09 -0700 Subject: [PATCH] Fixing durability type filter in OE (#2043) * Fixing durability type filter in OE * Adding doc comment --- .../Localization/sr.cs | 22 ++++++++ .../Localization/sr.resx | 8 +++ .../Localization/sr.strings | 2 + .../Localization/sr.xlf | 10 ++++ .../ObjectExplorer/Contracts/NodeInfo.cs | 19 ++++++- .../ObjectExplorer/SmoModel/SmoTreeNodes.cs | 56 +++++++++++++------ .../ObjectExplorer/SmoModel/SmoTreeNodes.tt | 14 +++-- .../SmoModel/SmoTreeNodesDefinition.xml | 12 ++-- 8 files changed, 115 insertions(+), 28 deletions(-) diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs index 89df9978..977e16e9 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.cs @@ -2445,6 +2445,22 @@ namespace Microsoft.SqlTools.ServiceLayer } } + public static string FilterDurabilitySchemaOnly + { + get + { + return Keys.GetString(Keys.FilterDurabilitySchemaOnly); + } + } + + public static string FilterDurabilitySchemaAndData + { + get + { + return Keys.GetString(Keys.FilterDurabilitySchemaAndData); + } + } + public static string FilterIsMemoryOptimized { get @@ -12197,6 +12213,12 @@ namespace Microsoft.SqlTools.ServiceLayer public const string FilterDurabilityTypeDescription = "FilterDurabilityTypeDescription"; + public const string FilterDurabilitySchemaOnly = "FilterDurabilitySchemaOnly"; + + + public const string FilterDurabilitySchemaAndData = "FilterDurabilitySchemaAndData"; + + public const string FilterIsMemoryOptimized = "FilterIsMemoryOptimized"; diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx index 959cad24..b03d90b1 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.resx @@ -1490,6 +1490,14 @@ Include or exclude objects based on the durability type. + + Schema Only + + + + Schema and Data + + Is Memory Optimized diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings index ad4f9798..12d0fa38 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.strings @@ -728,6 +728,8 @@ FilterOwner = Owner FilterOwnerDescription = Include or exclude objects based on the owner or part of an owner name. FilterDurabilityType = Durability Type FilterDurabilityTypeDescription = Include or exclude objects based on the durability type. +FilterDurabilitySchemaOnly = Schema Only +FilterDurabilitySchemaAndData = Schema and Data FilterIsMemoryOptimized = Is Memory Optimized FilterIsMemoryOptimizedDescription = Include or exclude objects based on whether the object is memory optimized. FilterCreateDate = Create Date diff --git a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf index 06996488..233d9961 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf +++ b/src/Microsoft.SqlTools.ServiceLayer/Localization/sr.xlf @@ -7227,6 +7227,16 @@ The Query Processor estimates that implementing the following index could improv Include or exclude objects based on whether the column is in a primary key. + + Schema Only + Schema Only + + + + Schema and Data + Schema and Data + + \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/Contracts/NodeInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/Contracts/NodeInfo.cs index fedbcdb2..f37cec6b 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/Contracts/NodeInfo.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/Contracts/NodeInfo.cs @@ -102,7 +102,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Contracts /// /// The list of choices for the filter property if the type is choice /// - public string[] Choices { get; set; } + public NodeFilterPropertyChoice[] Choices { get; set; } } /// @@ -154,4 +154,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Contracts /// public JToken Value { get; set; } } + + /// + /// The choice for the filter property if the type is choice + /// + public class NodeFilterPropertyChoice + { + /// + /// The dropdown display value for the choice + /// + /// + public string DisplayName { get; set; } + + /// + /// The value of the choice + /// + public string Value { get; set; } + } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs index 4c2489d1..a3a512e7 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.cs @@ -812,13 +812,19 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel }, new NodeFilterProperty { - Name = "DurabilityType", + Name = "Durability", DisplayName = SR.FilterDurabilityType, Type = NodeFilterPropertyDataType.Choice, Description = SR.FilterDurabilityTypeDescription, - Choices = new string[] { - "SchemaAndData", - "SchemaOnly", + Choices = new NodeFilterPropertyChoice[] { + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaAndData, + Value = "1", + }, + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaOnly, + Value = "0", + }, } }, new NodeFilterProperty @@ -1082,13 +1088,19 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel }, new NodeFilterProperty { - Name = "DurabilityType", + Name = "Durability", DisplayName = SR.FilterDurabilityType, Type = NodeFilterPropertyDataType.Choice, Description = SR.FilterDurabilityTypeDescription, - Choices = new string[] { - "SchemaAndData", - "SchemaOnly", + Choices = new NodeFilterPropertyChoice[] { + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaAndData, + Value = "1", + }, + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaOnly, + Value = "0", + }, } }, new NodeFilterProperty @@ -1305,13 +1317,19 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel }, new NodeFilterProperty { - Name = "DurabilityType", + Name = "Durability", DisplayName = SR.FilterDurabilityType, Type = NodeFilterPropertyDataType.Choice, Description = SR.FilterDurabilityTypeDescription, - Choices = new string[] { - "SchemaAndData", - "SchemaOnly", + Choices = new NodeFilterPropertyChoice[] { + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaAndData, + Value = "1", + }, + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaOnly, + Value = "0", + }, } }, new NodeFilterProperty @@ -1361,13 +1379,19 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel }, new NodeFilterProperty { - Name = "DurabilityType", + Name = "Durability", DisplayName = SR.FilterDurabilityType, Type = NodeFilterPropertyDataType.Choice, Description = SR.FilterDurabilityTypeDescription, - Choices = new string[] { - "SchemaAndData", - "SchemaOnly", + Choices = new NodeFilterPropertyChoice[] { + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaAndData, + Value = "1", + }, + new NodeFilterPropertyChoice { + DisplayName = SR.FilterDurabilitySchemaOnly, + Value = "0", + }, } }, new NodeFilterProperty diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.tt b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.tt index 0aaac561..128579b9 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.tt +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodes.tt @@ -335,12 +335,16 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel WriteLine(" Description = {0},", filterDescription); if(filterType == "choice") { - var enumValues = filterDef.ChildNodes; - WriteLine(" Choices = new string[] {"); - foreach (XmlElement enumValue in enumValues) + var choiceValues = filterDef.ChildNodes; + WriteLine(" Choices = new NodeFilterPropertyChoice[] {"); + foreach (XmlElement choice in choiceValues) { - var enumValueName = enumValue.GetAttribute("Name"); - WriteLine(" \"{0}\",", enumValueName); + var choiceName = choice.GetAttribute("LocLabel"); + var choiceValue = choice.GetAttribute("Value"); + WriteLine(" new NodeFilterPropertyChoice {"); + WriteLine(" DisplayName = {0},", choiceName); + WriteLine(" Value = \"{0}\",", choiceValue); + WriteLine(" },"); } WriteLine(" }"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml index c7117777..a177bcb7 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTreeNodesDefinition.xml @@ -576,7 +576,7 @@ Name Schema Owner - DurabilityType + Durability IsMemoryOptimized CreateDate @@ -585,7 +585,7 @@ Name Schema Owner - DurabilityType + Durability IsMemoryOptimized CreateDate @@ -594,7 +594,7 @@ Name Schema Owner - DurabilityType + Durability IsMemoryOptimized CreateDate @@ -665,9 +665,9 @@ - - - + + +