Пример #1
0
        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());
        }