Esempio n. 1
0
        public async Task AddOrUpdateConversationReference(ITurnContext turnContext)
        {
            var activity = turnContext.Activity;
            var timeoutReference = new TimeoutConversationReference(activity.GetConversationReference());

            using (var documentClient = new DocumentClient(new Uri(_cosmosUri), _cosmosKey))
            {
                await documentClient.UpsertDocumentAsync(UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId), timeoutReference);
            }
        }
Esempio n. 2
0
        private async Task AddOrUpdateConversationReference(ITurnContext turnContext)
        {
            var activity = turnContext.Activity;
            TimeoutConversationReference timeoutConversation = null;

            if (_conversationReferences.TryGetValue(activity.Conversation.Id, out timeoutConversation))
            {
                if (timeoutConversation.LastAccessed.AddSeconds(TimeoutSeconds) < DateTime.UtcNow)
                {
                    await turnContext.SendActivityAsync("Welcome back!  Let's start over from the beginning.");

                    await DialogState.DeleteAsync(turnContext);
                }
                timeoutConversation.LastAccessed = DateTime.UtcNow;
            }
            else
            {
                var timeoutReference = new TimeoutConversationReference(activity.GetConversationReference());
                _conversationReferences.AddOrUpdate(timeoutReference.ConversationReference.Conversation.Id, timeoutReference, (key, newValue) => timeoutReference);
            }
        }