public BlockchainStorageManager(IBlockchainStorageManagerConfig config, IUnitRepository unitRepository)
        {
            disposed = false;

            this.config         = config;
            this.unitRepository = unitRepository;

            lastUnit = unitRepository.Last;
        }
        public (BigInteger unitNumber, BigInteger blockNumber) AddBlock(Block block)
        {
            if (lastUnit.Count() >= config.BlocksInUnit)
            {
                IBlockchainUnit newUnit = unitRepository.CreateNewUnit();

                newUnit.AddBlock(block);

                lastUnit.Dispose();
                lastUnit = newUnit;
            }
            else
            {
                lastUnit.AddBlock(block);
            }

            return(unitRepository.Count - 1, lastUnit.Count() - 1);
        }