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); }
private async Task SendUserMessageAndShowBotResponse(ChatBubbleViewModel message) { Messages.Add(message); ChatInputText = ""; await ScrollDown(); await GetAndShowBotReply(message); }
private async Task AddBotMessage(string text) { var chatBubbleViewModel = new ChatBubbleViewModel(text, true); Messages.Add(chatBubbleViewModel); await ScrollDown(); if (_speechRecognitionService != null) { _speechToTextService.Speak(text); } }