diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoColumnCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoColumnCustomNode.cs index 9d02fe2b..0daa4ff2 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoColumnCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoColumnCustomNode.cs @@ -4,9 +4,11 @@ // using System; +using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using Microsoft.SqlServer.Management.Smo; +using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; using Microsoft.SqlTools.Utility; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel @@ -20,6 +22,81 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { return SmoColumnCustomNodeHelper.CalculateCustomLabel(smoObject, smoContext); } + + public override IEnumerable SmoProperties + { + get + { + return new List + { + new NodeSmoProperty + { + Name = "Computed", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "IsColumnSet", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "Nullable", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "DataType", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "InPrimaryKey", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "IsForeignKey", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "SystemType", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "Length", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "NumericPrecision", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "NumericScale", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "XmlSchemaNamespaceSchema", + ValidFor = ValidForFlag.NotSqlDw + }, + new NodeSmoProperty + { + Name = "XmlSchemaNamespace", + ValidFor = ValidForFlag.NotSqlDw + }, + new NodeSmoProperty + { + Name = "XmlDocumentConstraint", + ValidFor = ValidForFlag.NotSqlDw + } + }; + } + } } /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs index 447db2ea..ccd7e221 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoDatabaseCustomNode.cs @@ -3,9 +3,9 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using System.Collections.Generic; using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; -using System.Collections.Generic; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoKeyCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoKeyCustomNode.cs index cf852806..34ad3f02 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoKeyCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoKeyCustomNode.cs @@ -3,7 +3,9 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using System.Collections.Generic; using Microsoft.SqlServer.Management.Smo; +using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { @@ -23,6 +25,31 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel /// internal partial class IndexesChildFactory : SmoChildFactoryBase { + public override IEnumerable SmoProperties + { + get + { + return new List + { + new NodeSmoProperty + { + Name = "IsUnique", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "IsClustered", + ValidFor = ValidForFlag.All + }, + new NodeSmoProperty + { + Name = "IndexKeyType", + ValidFor = ValidForFlag.All + } + }; + } + } + public override string GetNodeSubType(object smoObject, SmoQueryContext smoContext) { return IndexCustomeNodeHelper.GetSubType(smoObject); diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoLoginCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoLoginCustomNode.cs index 64a3b453..a11a9519 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoLoginCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoLoginCustomNode.cs @@ -3,7 +3,9 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using System.Collections.Generic; using Microsoft.SqlServer.Management.Smo; +using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { @@ -16,6 +18,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { return LoginCustomNodeHelper.GetStatus(smoObject); } + + public override IEnumerable SmoProperties + { + get + { + return new List + { + new NodeSmoProperty + { + Name = "IsDisabled", + ValidFor = ValidForFlag.All + } + }; + } + } } internal static class LoginCustomNodeHelper diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTriggerCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTriggerCustomNode.cs index 48d07579..0e2c382f 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTriggerCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoTriggerCustomNode.cs @@ -3,7 +3,9 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using System.Collections.Generic; using Microsoft.SqlServer.Management.Smo; +using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { @@ -12,10 +14,27 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel /// internal partial class TriggersChildFactory : SmoChildFactoryBase { + public static readonly List SmoPropertyList = new List + { + new NodeSmoProperty + { + Name = "IsEnabled", + ValidFor = ValidForFlag.All + } + }; + public override string GetNodeStatus(object smoObject, SmoQueryContext smoContext) { return TriggersCustomeNodeHelper.GetStatus(smoObject); } + + public override IEnumerable SmoProperties + { + get + { + return TriggersChildFactory.SmoPropertyList; + } + } } internal partial class ServerLevelServerTriggersChildFactory : SmoChildFactoryBase @@ -24,6 +43,14 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { return TriggersCustomeNodeHelper.GetStatus(smoObject); } + + public override IEnumerable SmoProperties + { + get + { + return TriggersChildFactory.SmoPropertyList; + } + } } internal partial class DatabaseTriggersChildFactory : SmoChildFactoryBase @@ -32,6 +59,14 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { return TriggersCustomeNodeHelper.GetStatus(smoObject); } + + public override IEnumerable SmoProperties + { + get + { + return TriggersChildFactory.SmoPropertyList; + } + } } internal static class TriggersCustomeNodeHelper diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoUserCustomNode.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoUserCustomNode.cs index 9d969fd8..10794e4d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoUserCustomNode.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectExplorer/SmoModel/SmoUserCustomNode.cs @@ -3,7 +3,9 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using System.Collections.Generic; using Microsoft.SqlServer.Management.Smo; +using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { @@ -16,6 +18,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { return UserCustomeNodeHelper.GetStatus(smoObject); } + + public override IEnumerable SmoProperties + { + get + { + return new List + { + new NodeSmoProperty + { + Name = "HasDBAccess", + ValidFor = ValidForFlag.All + } + }; + } + } } internal static class UserCustomeNodeHelper