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
}
}