fixed couple of issues in task service (#377)

This commit is contained in:
Leila Lali
2017-06-12 15:52:49 -07:00
committed by GitHub
parent 869cd1439f
commit 58f438176b
7 changed files with 259 additions and 246 deletions

View File

@@ -4,6 +4,8 @@
//
using Microsoft.SqlTools.ServiceLayer.Hosting;
namespace Microsoft.SqlTools.ServiceLayer.TaskServices.Contracts
{
public class TaskInfo
@@ -34,6 +36,17 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices.Contracts
/// </summary>
public string Name { get; set; }
/// <summary>
/// Provider Name
/// </summary>
public string ProviderName
{
get
{
return ServiceHost.ProviderName;
}
}
/// <summary>
/// Task description
/// </summary>

View File

@@ -14,7 +14,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices.Contracts
{
public static readonly
EventType<TaskInfo> Type =
EventType<TaskInfo>.Create("task/newtaskcreated");
EventType<TaskInfo>.Create("tasks/newtaskcreated");
}
/// <summary>
@@ -24,6 +24,6 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices.Contracts
{
public static readonly
EventType<TaskProgressInfo> Type =
EventType<TaskProgressInfo>.Create("task/statuschanged");
EventType<TaskProgressInfo>.Create("tasks/statuschanged");
}
}

View File

@@ -20,7 +20,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
public class SqlTask : IDisposable
{
private bool isCompleted;
private bool isCanceled;
private bool isCancelRequested;
private bool isDisposed;
private readonly object lockObject = new object();
private readonly List<TaskMessage> messages = new List<TaskMessage>();
@@ -114,18 +114,18 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
/// Setting this to True will not change the Slot status.
/// Setting the Slot status to Canceled will set this to true.
/// </summary>
public bool IsCanceled
public bool IsCancelRequested
{
get
{
return isCanceled;
return isCancelRequested;
}
private set
{
if (isCanceled != value)
if (isCancelRequested != value)
{
isCanceled = value;
OnTaskCanceled();
isCancelRequested = value;
OnTaskCancelRequested();
}
}
}
@@ -221,9 +221,9 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
throw new NotSupportedException("IsCompleted is not determined for status: " + status);
}
if (status == SqlTaskStatus.Canceled)
if (status == SqlTaskStatus.Canceled && !isCancelRequested)
{
IsCanceled = true;
IsCancelRequested = true;
}
OnStatusChanged();
@@ -251,7 +251,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
/// </summary>
public void Cancel()
{
IsCanceled = true;
IsCancelRequested = true;
}
/// <summary>
@@ -308,11 +308,11 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
{
return new TaskInfo
{
TaskId = this.TaskId.ToString(),
DatabaseName = TaskMetadata.DatabaseName,
ServerName = TaskMetadata.ServerName,
Name = TaskMetadata.Name,
Description = TaskMetadata.Description,
TaskId = TaskId.ToString()
};
}
@@ -366,7 +366,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
}
}
private void OnTaskCanceled()
private void OnTaskCancelRequested()
{
var handler = TaskCanceled;
if (handler != null)