refactored query execution failure callback to take exception (#382)

This commit is contained in:
Anthony Dresser
2017-06-14 15:59:21 -07:00
committed by GitHub
parent 85dc0b9ae2
commit 9b91a93578
3 changed files with 21 additions and 8 deletions

View File

@@ -346,7 +346,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
Func<Query, Task<bool>> queryCreateSuccessFunc,
Func<string, Task> queryCreateFailFunc,
Query.QueryAsyncEventHandler querySuccessFunc,
Query.QueryAsyncEventHandler queryFailureFunc)
Query.QueryAsyncErrorEventHandler queryFailureFunc)
{
Validate.IsNotNull(nameof(executeParams), executeParams);
Validate.IsNotNull(nameof(queryEventSender), queryEventSender);
@@ -478,7 +478,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
private static void ExecuteAndCompleteQuery(string ownerUri, Query query,
IEventSender eventSender,
Query.QueryAsyncEventHandler querySuccessCallback,
Query.QueryAsyncEventHandler queryFailureCallback)
Query.QueryAsyncErrorEventHandler queryFailureCallback)
{
// Setup the callback to send the complete event
Query.QueryAsyncEventHandler completeCallback = async q =>
@@ -492,8 +492,21 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
await eventSender.SendEvent(QueryCompleteEvent.Type, eventParams);
};
// Setup the callback to send the complete event
Query.QueryAsyncErrorEventHandler failureCallback = async (q, e) =>
{
// Send back the results
QueryCompleteParams eventParams = new QueryCompleteParams
{
OwnerUri = ownerUri,
BatchSummaries = q.BatchSummaries
};
await eventSender.SendEvent(QueryCompleteEvent.Type, eventParams);
};
query.QueryCompleted += completeCallback;
query.QueryFailed += completeCallback;
query.QueryFailed += failureCallback;
// Add the callbacks that were provided by the caller
// If they're null, that's no problem