Exemplo n.º 1
0
        public override void Start(SpeechEnroller.StartCallback callback)
        {
            ResetEnroller();

            if (string.IsNullOrEmpty(ClientId))
            {
                Logger?.LogError("SpeechEnroller_HttpClient_Version1.Start(callback): Missing Client-Id");
                EnrollResult = SpeechEnroller.Result.Invalid;
                callback?.Invoke(false);
                return;
            }

            Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_START, ClientId, SubPopulation.GetGender());

            Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.Start(callback): URI: " + uri.ToString());

            using (var request = BuildRequest(CallMode.Start, uri))
            {
                var task = mHttpClient.SendAsync(request).ContinueWith((requestTask) => {
                    if (requestTask.IsFaulted)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(requestTask.Exception);
                        callback?.Invoke(false);
                        return;
                    }
                    HandleResponse(CallMode.Start, request, requestTask.Result).ContinueWith((responseTask) => {
                        if (responseTask.IsFaulted)
                        {
                            EnrollResult = SpeechEnroller.Result.Timeout;
                            Logger?.LogError(responseTask.Exception);
                            callback?.Invoke(false);
                            return;
                        }
                        callback?.Invoke(responseTask.Result);
                    });
                });

                if (task.IsFaulted)
                {
                    EnrollResult = SpeechEnroller.Result.Timeout;
                    Logger?.LogError(task.Exception);
                    callback?.Invoke(false);
                }
            }
        }
 public abstract void Start(SpeechEnroller.StartCallback callback);