Пример #1
0
        /*
         * 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());
            }
        }