diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs index 1a573828..f6f21927 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectManagementService.cs @@ -36,6 +36,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement this.objectTypeHandlers.Add(new AppRoleHandler(ConnectionService.Instance)); this.objectTypeHandlers.Add(new DatabaseRoleHandler(ConnectionService.Instance)); this.objectTypeHandlers.Add(new ServerRoleHandler(ConnectionService.Instance)); + this.objectTypeHandlers.Add(new DatabaseHandler(ConnectionService.Instance)); } /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseHandler.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseHandler.cs new file mode 100644 index 00000000..e4ae92ca --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseHandler.cs @@ -0,0 +1,42 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +// + +using System; +using System.Threading.Tasks; +using Microsoft.SqlTools.ServiceLayer.Connection; +using Microsoft.SqlTools.ServiceLayer.ObjectManagement.Contracts; + +namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement +{ + /// + /// Database object type handler + /// + public class DatabaseHandler : ObjectTypeHandler + { + public DatabaseHandler(ConnectionService connectionService) : base(connectionService) + { + } + + public override bool CanHandleType(SqlObjectType objectType) + { + return objectType == SqlObjectType.Database; + } + + public override Task InitializeObjectView(InitializeViewRequestParams requestParams) + { + throw new NotImplementedException(); + } + + public override Task Save(DatabaseViewContext context, DatabaseInfo obj) + { + throw new NotImplementedException(); + } + + public override Task Script(DatabaseViewContext context, DatabaseInfo obj) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseInfo.cs new file mode 100644 index 00000000..ae7cb76f --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseInfo.cs @@ -0,0 +1,19 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +// + +namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement +{ + /// + /// A class for storing various properties needed for Saving & Scripting a database + /// + public class DatabaseInfo : SqlObject + { + public string? Owner { get; set; } + public string? CollationName { get; set; } + public string? RecoveryModel { get; set; } + public string? CompatibilityLevel { get; set; } + public string? ContainmentType { get; set; } + } +} \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseViewContext.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseViewContext.cs new file mode 100644 index 00000000..60017dc5 --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/ObjectTypes/Database/DatabaseViewContext.cs @@ -0,0 +1,20 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +// + +using Microsoft.SqlTools.ServiceLayer.ObjectManagement.Contracts; + +namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement +{ + public class DatabaseViewContext : SqlObjectViewContext + { + public DatabaseViewContext(InitializeViewRequestParams parameters) : base(parameters) + { + } + + public override void Dispose() + { + } + } +} \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/SqlObjectType.cs b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/SqlObjectType.cs index 2f4417a5..518ea376 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/SqlObjectType.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/ObjectManagement/SqlObjectType.cs @@ -29,6 +29,8 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement [EnumMember(Value = "User")] User, [EnumMember(Value = "View")] - View + View, + [EnumMember(Value = "Database")] + Database } } \ No newline at end of file