Example #1
0
        private async Task GetAndShowBotReply(ChatBubbleViewModel message)
        {
            IsTypingMessageVisible = 1;

            await _fieldBotCommunicationService.SendMessageAsync(message.Text);

            var botResponse = await _fieldBotCommunicationService.GetBotResponseAsync();

            var reply = "Sorry, I don't understand that.";

            if (botResponse.Messages != null)
            {
                var messages          = botResponse.Messages.ToList();
                var localConversation = Messages
                                        .Select(m => m.Text)
                                        .ToList();
                if (BotCommunicationHelpers.IsBotResponseMultiline(messages, localConversation))
                {
                    reply = BotCommunicationHelpers.FormatMultilineBotResponse(messages, localConversation);
                }
                else
                {
                    var lastMessage = messages.Last();
                    reply = lastMessage.Text;
                }
            }
            IsTypingMessageVisible = 0;
            await AddBotMessage(reply);
        }
Example #2
0
        private async Task SendUserMessageAndShowBotResponse(ChatBubbleViewModel message)
        {
            Messages.Add(message);
            ChatInputText = "";
            await ScrollDown();

            await GetAndShowBotReply(message);
        }
Example #3
0
        private async Task AddBotMessage(string text)
        {
            var chatBubbleViewModel = new ChatBubbleViewModel(text, true);

            Messages.Add(chatBubbleViewModel);
            await ScrollDown();

            if (_speechRecognitionService != null)
            {
                _speechToTextService.Speak(text);
            }
        }