/* * ChatBot methods */ /// <summary> /// Start conversation with ChatBot and display ChatBot "Hello" message. /// </summary> /// <returns></returns> public async Task StartConversationWithChatBot() { string userGroup = GetConnectionKey(); if (!_activeConversations.TryRemove(userGroup, out int id)) { var knowledgebase = await _chatBotRepository.GetActiveQnAKnowledgeBaseAsync(); var qnabase = await _chatBotRepository.GetActiveQnABaseClassAsync(); int conversationId; Conversation conversation = new Conversation { UserGroup1 = userGroup, IsChatBot = true, StartTime = DateTime.Now, KnowledgebaseId = knowledgebase.QnAKnowledgeBaseId, QnABaseId = qnabase.QnAId }; try { conversationId = await _chatRepository.AddConversationAsync(conversation); conversation.ConversationId = conversationId; } catch (Exception e) { string msg = e.Message; await DisplayChatBotConnectionError(userGroup); return; } // Add to active conversation _activeConversations.TryAdd(userGroup, conversationId); await SetConversationId(userGroup, conversation.ConversationId); await DisplayMessage(userGroup, ChatBot, GetStandardChatBotHello()); } }