Adding SetDSP support to SqlProjects service (#1895)

* Adding SetDSP support

* correcting comment
This commit is contained in:
Benjin Dubishar
2023-03-02 20:10:13 -08:00
committed by GitHub
parent bec0877e32
commit b27b7dc379
3 changed files with 67 additions and 20 deletions

View File

@@ -0,0 +1,31 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
#nullable disable
using Microsoft.SqlTools.Hosting.Protocol.Contracts;
using Microsoft.SqlTools.ServiceLayer.Utility;
namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts
{
/// <summary>
/// Parameters for setting the DatabaseSchemaProvider property of a SQL project
/// </summary>
public class SetDatabaseSchemaProviderParams : SqlProjectParams
{
/// <summary>
/// New DatabaseSchemaProvider value, in the form "Microsoft.Data.Tools.Schema.Sql.SqlXYZDatabaseSchemaProvider"
/// </summary>
public string DatabaseSchemaProvider { get; set; }
}
/// <summary>
/// Set the DatabaseSchemaProvider property of a SQL project
/// </summary>
public class SetDatabaseSchemaProviderRequest
{
public static readonly RequestType<SetDatabaseSchemaProviderParams, ResultStatus> Type = RequestType<SetDatabaseSchemaProviderParams, ResultStatus>.Create("sqlProjects/setDatabaseSchemaProvider");
}
}

View File

@@ -48,6 +48,7 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects
serviceHost.SetRequestHandler(UpdateProjectForCrossPlatformRequest.Type, HandleUpdateProjectForCrossPlatformRequest, isParallelProcessingSupported: false);
serviceHost.SetRequestHandler(GetProjectPropertiesRequest.Type, HandleGetProjectPropertiesRequest, isParallelProcessingSupported: true);
serviceHost.SetRequestHandler(SetDatabaseSourceRequest.Type, HandleSetDatabaseSourceRequest, isParallelProcessingSupported: false);
serviceHost.SetRequestHandler(SetDatabaseSchemaProviderRequest.Type, HandleSetDatabaseSchemaProviderRequest, isParallelProcessingSupported: false);
// SQL object script functions
serviceHost.SetRequestHandler(GetSqlObjectScriptsRequest.Type, HandleGetSqlObjectScriptsRequest, isParallelProcessingSupported: true);
@@ -162,6 +163,11 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects
await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).Properties.DatabaseSource = requestParams.DatabaseSource, requestContext);
}
internal async Task HandleSetDatabaseSchemaProviderRequest(SetDatabaseSchemaProviderParams requestParams, RequestContext<ResultStatus> requestContext)
{
await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).DatabaseSchemaProvider = requestParams.DatabaseSchemaProvider, requestContext);
}
#endregion
#region Script/folder functions