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); }
// 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); }