コード例 #1
0
        private async Task <ConversationReferenceData> AddConversationReference(Activity activity)
        {
            var conversationReference          = activity.GetConversationReference();
            TeamsChannelData channelData       = activity.GetChannelData <TeamsChannelData>();
            string           channelID         = channelData.Team.Id;
            var localConversationReferenceData = new ConversationReferenceData()
            {
                ChannelID = channelID, ChannelConversationReferenceObject = conversationReference
            };

            var databaseName   = _config["CosmosDBDatabaseName"];
            var collectionName = _config["CosmosConversationReferenceCollection"];
            var response       = await _documentClient.UpsertDocumentAsync(
                UriFactory.CreateDocumentCollectionUri(databaseName, collectionName),
                localConversationReferenceData);

            return(localConversationReferenceData);
        }
コード例 #2
0
        // This is a callback to send a new card and mention people in a reply.
        private async Task BotCallbackForSend(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            // Create a card by using the data from the request body.
            var attachmentCard    = CreateGitHubAdpativeCardAttachment();
            var cardReplyActivity = MessageFactory.Attachment(attachmentCard);
            await turnContext.SendActivityAsync(cardReplyActivity);

            // Save the card activity to the database.
            var id = dataFromRequest.Id;
            var localReplyChainData = new ReplyChainData()
            {
                ExternalTicketId = id, MessageId = cardReplyActivity.Id
            };
            var databaseName   = _config["CosmosDBDatabaseName"];
            var collectionName = _config["CosmosMessageIdCollection"];
            var response       = await _documentClient.UpsertDocumentAsync(
                UriFactory.CreateDocumentCollectionUri(databaseName, collectionName),
                localReplyChainData);

            // Create a reply that mention people based on the incoming data.
            await CreateReplyForSend(turnContext, cardReplyActivity.Id, dataFromRequest, cancellationToken);
        }