Merge pull request #11 from Microsoft/dev_connmgr

Add error handling to Connect command
This commit is contained in:
Kevin Cunnane
2016-07-28 16:57:27 -07:00
committed by GitHub
3 changed files with 29 additions and 6 deletions

View File

@@ -10,6 +10,8 @@ using System.Threading.Tasks;
using Microsoft.SqlTools.EditorServices.Utility; using Microsoft.SqlTools.EditorServices.Utility;
using Microsoft.SqlTools.ServiceLayer.Hosting; using Microsoft.SqlTools.ServiceLayer.Hosting;
using Microsoft.SqlTools.ServiceLayer.Hosting.Protocol; using Microsoft.SqlTools.ServiceLayer.Hosting.Protocol;
using Microsoft.SqlTools.ServiceLayer.SqlContext;
using Microsoft.SqlTools.ServiceLayer.WorkspaceServices;
namespace Microsoft.SqlTools.ServiceLayer.Connection namespace Microsoft.SqlTools.ServiceLayer.Connection
{ {
@@ -146,10 +148,13 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
}; };
} }
public void Initialize(ServiceHost serviceHost) public void InitializeService(ServiceHost serviceHost)
{ {
// Register request and event handlers with the Service Host // Register request and event handlers with the Service Host
serviceHost.SetRequestHandler(ConnectionRequest.Type, HandleConnectRequest); serviceHost.SetRequestHandler(ConnectionRequest.Type, HandleConnectRequest);
// Register the configuration update handler
WorkspaceService<SqlToolsSettings>.Instance.RegisterConfigChangeCallback(HandleDidChangeConfigurationNotification);
} }
/// <summary> /// <summary>
@@ -177,10 +182,28 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
{ {
Logger.Write(LogLevel.Verbose, "HandleConnectRequest"); Logger.Write(LogLevel.Verbose, "HandleConnectRequest");
// open connection base on request details try
ConnectionResult result = ConnectionService.Instance.Connect(connectionDetails); {
// open connection base on request details
ConnectionResult result = ConnectionService.Instance.Connect(connectionDetails);
await requestContext.SendResult(result);
}
catch(Exception ex)
{
await requestContext.SendError(ex.Message);
}
}
await requestContext.SendResult(result); #endregion
#region Handlers for Events from Other Services
public Task HandleDidChangeConfigurationNotification(
SqlToolsSettings newSettings,
SqlToolsSettings oldSettings,
EventContext eventContext)
{
return Task.FromResult(true);
} }
#endregion #endregion

View File

@@ -45,7 +45,7 @@ namespace Microsoft.SqlTools.ServiceLayer
WorkspaceService<SqlToolsSettings>.Instance.InitializeService(serviceHost); WorkspaceService<SqlToolsSettings>.Instance.InitializeService(serviceHost);
AutoCompleteService.Instance.InitializeService(serviceHost); AutoCompleteService.Instance.InitializeService(serviceHost);
LanguageService.Instance.InitializeService(serviceHost, sqlToolsContext); LanguageService.Instance.InitializeService(serviceHost, sqlToolsContext);
ConnectionService.Instance.Initialize(serviceHost); ConnectionService.Instance.InitializeService(serviceHost);
serviceHost.Initialize(); serviceHost.Initialize();
serviceHost.WaitForExit(); serviceHost.WaitForExit();

View File

@@ -8,7 +8,7 @@ using Microsoft.SqlTools.ServiceLayer.WorkspaceServices.Contracts;
using Microsoft.SqlTools.Test.Utility; using Microsoft.SqlTools.Test.Utility;
using Xunit; using Xunit;
namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServer namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices
{ {
/// <summary> /// <summary>
/// Tests for the ServiceHost Language Service tests /// Tests for the ServiceHost Language Service tests