Пример #1
0
        private async Task RestoreStateAsync(string userId)
        {
            var r = await Task.WhenAll(
                StateStoreTable.ExecuteAsync(TableOperation.Retrieve <MessagingChatSettings>(nameof(MessagingChatSettings), userId)),
                StateStoreTable.ExecuteAsync(TableOperation.Retrieve <MessagingSessionData>(nameof(MessagingSessionData), userId)));

            if (r[0].HttpStatusCode != 200)
            {
                MessagingChatSettings = new MessagingChatSettings
                {
                    RowKey = userId,
                };
            }
            else
            {
                MessagingChatSettings = (MessagingChatSettings)r[0].Result;
            }

            if (r[1].HttpStatusCode != 200)
            {
                MessagingSessionData = new MessagingSessionData
                {
                    RowKey = userId,
                };
            }
            else
            {
                MessagingSessionData = (MessagingSessionData)r[1].Result;
                if (MessagingSessionData.Timestamp <= DateTimeOffset.UtcNow - TimeSpan.FromMinutes(15))
                {
                    MessagingSessionData = new MessagingSessionData
                    {
                        RowKey = userId,
                    };
                }
            }
        }
Пример #2
0
 private Task SaveStateAsync(string userId)
 {
     return(Task.WhenAll(
                StateStoreTable.ExecuteAsync(TableOperation.InsertOrReplace(MessagingChatSettings)),
                StateStoreTable.ExecuteAsync(TableOperation.InsertOrReplace(MessagingSessionData))));
 }