public async Task RevokeActiveIdAsync(string blockchainType, string blockchainAssetId, string hotWallet, Guid batchId)
        {
            var partitionKey = ActiveCashoutsBatchIdEntity.GeneratePartitionKey(blockchainType);
            var rowKey       = ActiveCashoutsBatchIdEntity.GenerateRowKey(blockchainAssetId, hotWallet);

            await _storage.DeleteIfExistAsync(partitionKey, rowKey, e => e.BatchId == batchId);
        }
        public async Task <ActiveCashoutBatchId> GetActiveOrNextBatchId(string blockchainType, string blockchainAssetId, string hotWallet, Func <Guid> getNextId)
        {
            var partitionKey = ActiveCashoutsBatchIdEntity.GeneratePartitionKey(blockchainType);
            var rowKey       = ActiveCashoutsBatchIdEntity.GenerateRowKey(blockchainAssetId, hotWallet);

            var entity = await _storage.GetOrInsertAsync(
                partitionKey,
                rowKey,
                () =>
            {
                var id = getNextId();

                return(ActiveCashoutsBatchIdEntity.FromDomain
                       (
                           blockchainType,
                           blockchainAssetId,
                           hotWallet,
                           id
                       ));
            });

            return(entity.ToDomain());
        }