async Task IActorStateProvider.ReminderCallbackCompletedAsync(ActorId actorId, IActorReminder reminder, CancellationToken cancellationToken) { await this.EnsureStateProviderInitializedAsync(cancellationToken); var key = CreateStorageKey(actorId, reminder.Name); var reminderData = new ReminderCompletedData(this.logicalTimeManager.CurrentLogicalTime, DateTime.UtcNow); var data = ReminderCompletedDataSerializer.Serialize(reminderData); await this.stateProviderHelper.ExecuteWithRetriesAsync( async() => { using (var tx = this.stateManager.CreateTransaction()) { await this.reminderCompletedDictionary.AddOrUpdateAsync(tx, key, data, (k, v) => data); await tx.CommitAsync(); } }, string.Format("ReminderCallbackCompletedAsync[{0}]", actorId), cancellationToken); }
private async Task <Dictionary <string, ReminderCompletedData> > GetReminderCompletedDataMapAsync(CancellationToken cancellationToken) { var reminderCompletedDataDict = new Dictionary <string, ReminderCompletedData>(); using (var tx = this.stateManager.CreateTransaction()) { var enumerable = await this.reminderCompletedDictionary.CreateEnumerableAsync(tx); var enumerator = enumerable.GetAsyncEnumerator(); while (await enumerator.MoveNextAsync(cancellationToken)) { cancellationToken.ThrowIfCancellationRequested(); if (enumerator.Current.Value != null) { var reminderCompletedData = ReminderCompletedDataSerializer.Deserialize(enumerator.Current.Value); reminderCompletedDataDict.Add(enumerator.Current.Key, reminderCompletedData); } } } return(reminderCompletedDataDict); }