diff --git a/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/Requests/DisposeTableDesignerRequest.cs b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/Requests/DisposeTableDesignerRequest.cs new file mode 100644 index 00000000..808e3836 --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/Requests/DisposeTableDesignerRequest.cs @@ -0,0 +1,24 @@ +// +// 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.Hosting.Protocol.Contracts; + +namespace Microsoft.SqlTools.ServiceLayer.TableDesigner.Contracts +{ + public class DisposeTableDesignerResponse + { + } + + /// + /// The request to dispose the table designer. + /// + public class DisposeTableDesignerRequest + { + /// + /// Request definition + /// + public static readonly RequestType Type = RequestType.Create("tabledesigner/dispose"); + } +} diff --git a/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/TableInfo.cs b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/TableInfo.cs index 8d319bf3..5e9d52b7 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/TableInfo.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/Contracts/TableInfo.cs @@ -20,6 +20,8 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner.Contracts public bool IsNewTable { get; set; } - public string ConnectionUri { get; set; } + public string ConnectionString { get; set; } + + public string Id { get; set; } } } \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/TableDesignerService.cs b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/TableDesignerService.cs index 17d360d7..60e511a8 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/TableDesignerService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/TableDesigner/TableDesignerService.cs @@ -50,6 +50,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner this.ServiceHost.SetRequestHandler(GetTableDesignerInfoRequest.Type, HandleGetTableDesignerInfoRequest); this.ServiceHost.SetRequestHandler(ProcessTableDesignerEditRequest.Type, HandleProcessTableDesignerEditRequest); this.ServiceHost.SetRequestHandler(SaveTableChangesRequest.Type, HandleSaveTableChangesRequest); + this.ServiceHost.SetRequestHandler(DisposeTableDesignerRequest.Type, HandleDisposeTableDesignerRequest); } private async Task HandleGetTableDesignerInfoRequest(TableInfo tableInfo, RequestContext requestContext) @@ -123,6 +124,23 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner }); } + + private async Task HandleDisposeTableDesignerRequest(TableInfo tableInfo, RequestContext requestContext) + { + await Task.Run(async () => + { + try + { + // TODO: Handle the dispose table designer request. + await requestContext.SendResult(new DisposeTableDesignerResponse()); + } + catch (Exception e) + { + await requestContext.SendError(e); + } + }); + } + private void HandleAddItemRequest(ProcessTableDesignerEditRequestParams requestParams) { var property = requestParams.TableChangeInfo.Property; @@ -138,7 +156,9 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner default: break; } - } else { + } + else + { // TODO: Handle the add item request on second level properties, e.g. Adding a column to an index } }