public async Task <bool> TryDeleteObservationAsync(string address) { // delete wallet if exists var existed = await _walletStorage.DeleteIfExistAsync(DepositWalletEntity.Partition(address), DepositWalletEntity.Row()); // if not deleted earlier then delete balances if (existed) { string continuation = null; do { var query = new TableQuery <DepositWalletBalanceEntity>().Where($"PartitionKey eq '{DepositWalletBalanceEntity.Partition(address)}'"); var chunk = await _walletBalanceStorage.GetDataWithContinuationTokenAsync(query, 100, continuation); var batch = new TableBatchOperation(); continuation = chunk.ContinuationToken; foreach (var balance in chunk.Entities) { batch.Delete(balance); } if (batch.Any()) { await _walletBalanceStorage.DoBatchAsync(batch); } } while (!string.IsNullOrEmpty(continuation)); } return(existed); }
private static async Task DeleteCodesInRepository <T>(string partnerId, string phoneNum, INoSQLTableStorage <T> storage) where T : ITableEntity, new() { var batchOperation = new TableBatchOperation(); var entitiesToDelete = (await storage.GetDataAsync(SmsVerificationCodeEntity.GeneratePartitionKey(partnerId, phoneNum))) .ToArray(); if (entitiesToDelete.Any()) { foreach (var e in entitiesToDelete) { batchOperation.Delete(e); } await storage.DoBatchAsync(batchOperation); } }
public async Task DoBatchAsync(TableBatchOperation batch) { await _retryService.RetryAsync(async() => await _impl.DoBatchAsync(batch), _onModificationsRetryCount); }
public async Task DoBatchAsync(TableBatchOperation batch) { await _table.DoBatchAsync(batch); await _cache.DoBatchAsync(batch); }
public Task DoBatchAsync(TableBatchOperation batch) => WrapAsync(() => _impl.DoBatchAsync(batch), nameof(DoBatchAsync));