Beispiel #1
0
        private static SpeechResponse HandleSpeechResult(SpeechMessageSchema data, WebSocket clientConn)
        {
            if (_handler != null)
            {
                _handler.Update(data.results, data.result_index);
            }
            else
            {
                _handler = new MessageHandler(data.results, data.result_index);
            }

            ProcedureBase procedure = _handler.GetProcedure();

            if (ProcedureBase.IsConfirmationRequested())
            {
                switch (ProcedureBase.ParseConfirmation(data.results))
                {
                case ConfirmationResult.UNKNOWN:
                    return(IgnoreResponse(procedure));

                case ConfirmationResult.CONFIRMED:
                    ProcedureBase.Confirm();
                    _handler = null;
                    return(new SpeechResponse {
                        res = "confirmed", index = data.result_index
                    });

                case ConfirmationResult.REJECTED:
                    ProcedureBase.Reject();
                    _handler = null;
                    return(new SpeechResponse {
                        res = "rejected", index = data.result_index
                    });
                }
            }

            if (!_handler.Execute(clientConn))
            {
                return(IgnoreResponse(procedure));
            }

            if (procedure == null)
            {
                _handler = null;
            }
            Console.WriteLine("Command executed, sending response to client");
            return(new SpeechResponse {
                res = "executed", index = data.result_index
            });
        }
Beispiel #2
0
        private static SpeechResponse HandleSpeechResult(SpeechMessageSchema data,
                                                         IWebSocketConnection clientConn)
        {
            if (_handler != null)
            {
                _handler.Update(data.results, data.result_index);
            }
            else
            {
                _handler = new MessageHandler(data.results, data.result_index);
            }

            bool          executed  = _handler.Execute(clientConn);
            ProcedureBase procedure = _handler.GetProcedure();

            if (!executed)
            {
                var resp = new SpeechResponse {
                    res = "ignored"
                };
                if (procedure != null)
                {
                    resp.procedure = procedure.GetType().Name;
                }
                return(resp);
            }

            if (procedure == null)
            {
                _handler = null;
            }
            Console.WriteLine("Command executed, sending response to client");
            return(new SpeechResponse {
                res = "executed", index = data.result_index
            });
        }