public void ReplaceBlockchain(List <BlockHeader> blockHeaders, List <BlockContent> blockContents) { _logger.LogDebug("Attempting to replace the whole blockchain."); var blocksToPersist = new List <Block>(); foreach (BlockHeader blockHeader in blockHeaders) { var blockIri = GenerateNewBlockIri(blockHeader.GetIndexAsInt()); BlockContent blockContent = FindBlockContentByBlockHeader(blockContents, blockHeader); blocksToPersist.Add(new Block(blockIri, blockHeader, blockContent)); } _logger.LogDebug("Ready to persist the following blocks: {}.", blocksToPersist); _repositoryManager.ClearBlockchainAndPersistBlocks(blocksToPersist); }