public override void Cancel(string reason, SpeechIdentifier.CancelCallback callback) { if (IsSessionOpen && !IsSessionClosing) { IsSessionClosing = true; IdentifyResults.Clear(); Content.Clear(); if (string.IsNullOrEmpty(reason)) { reason = "Unknown"; } else { reason = reason.Replace(' ', '-').Substring(0, System.Math.Min(reason.Length, 64)); } Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_CANCEL, reason); Logger?.LogDebug("SpeechIdentifier_HttpClient_Version1.Cancel(callback): URI: " + uri.ToString()); using (var request = BuildRequest(CallMode.Cancel, uri)) { var task = mHttpClient.SendAsync(request).ContinueWith((requestTask) => { if (requestTask.IsFaulted) { IdentifyResult = SpeechIdentifier.Result.Timeout; Logger?.LogError(requestTask.Exception); callback?.Invoke(); return; } HandleResponse(CallMode.Cancel, request, requestTask.Result).ContinueWith((responseTask) => { if (responseTask.IsFaulted) { IdentifyResult = SpeechIdentifier.Result.Timeout; Logger?.LogError(responseTask.Exception); callback?.Invoke(); return; } callback?.Invoke(); }); }); if (task.IsFaulted) { IdentifyResult = SpeechIdentifier.Result.Timeout; Logger?.LogError(task.Exception); callback?.Invoke(); } return; } } IdentifyResult = SpeechIdentifier.Result.Invalid; callback?.Invoke(); }
public abstract void Cancel(string reason, SpeechIdentifier.CancelCallback callback);