public void HandleRawBlock(Base64String rawBlock, BlockId blockId) { if (_blockHeader != null) { throw new InvalidOperationException("Invoke HandleRawBlock before StartBlockTransactionsHandling"); } _saveRawBlockTask = _rawObjectsRepository.SaveAsync(RawObjectType.Block, blockId, rawBlock); }
public async Task HandleRawTransactionAsync(Base64String rawTransaction, TransactionId transactionId) { async Task SaveRawTransaction() { try { await _rawObjectsRepository.SaveAsync(RawObjectType.Transaction, transactionId, rawTransaction); } finally { _rawTransactionsPersistenceParallelismGuard.Release(); } } await _rawTransactionsPersistenceParallelismGuard.WaitAsync(); _rawTransactionsPersistenceTasks.Add(SaveRawTransaction()); }