Exemple #1
0
        private void ensureInitialization()
        {
            if (_lastResponse != null)
            {
                //initialization has been completed
                return;
            }

            Manager        = createDialogManager();
            _firstResponse = Manager.Initialize();
            _lastResponse  = _firstResponse;
            _currentHTML   = systemTextHTML(_lastResponse.ToString());

            if (Manager == null)
            {
                throw new NullReferenceException("_manager");
            }

            if (_lastResponse == null)
            {
                throw new NullReferenceException("_lastResponse");
            }

            if (_currentHTML == null)
            {
                throw new NullReferenceException("_currentHTML");
            }
        }
        /// <summary>
        /// Run dialog service (is blocking)
        /// </summary>
        public void Run(bool useDirectInput = false)
        {
            if (_inputManager != null)
            {
                var initializationResponse = _inputManager.Initialize();
                ConsoleServices.PrintOutput(initializationResponse);
            }

            for (; ;)
            {
                var utterance = readUtterance();

                ResponseBase response;
                if (_manager == null)
                {
                    var parsedSentence = Dialog.UtteranceParser.Parse(utterance);
                    response = _inputManager.Input(parsedSentence);
                }
                else
                {
                    var parsedUtterance = parseUtterance(utterance);
                    if (parsedUtterance == null)
                    {
                        return;
                    }

                    if (useDirectInput)
                    {
                        response = _manager.Ask(utterance);
                    }
                    else
                    {
                        response = parsedUtterance.HandleManager(_manager);
                    }
                }
                ConsoleServices.PrintOutput(response);
            }
        }