public async Task WriteBlockDataAsync(IBlockNinja blockData)
        {
            var key   = Guid.NewGuid().ToString();
            var bytes = blockData.ToJson().ToUtf8ByteArray();
            await _azureBlob.SaveBlobAsync(BlobContainer, key, bytes);

            await _tableStorage.InsertOrReplaceAsync(BlockNinjaEntity.Create(blockData.Hash, key));
        }
        public async Task <IBlockNinja> GetBlockDataAsync(string blockId)
        {
            var rowKey       = BlockNinjaEntity.GenerateRowKey(blockId);
            var partiteonKey = BlockNinjaEntity.GeneratePartiteonKey();
            var block        = await _tableStorage.GetDataAsync(partiteonKey, rowKey);

            if (block == null)
            {
                return(null);
            }
            var blobBlockData = await _azureBlob.GetAsync(BlobContainer, block.BlobId);

            var jsonStr = Encoding.UTF8.GetString(blobBlockData.ToBytes());

            return(JsonConvert.DeserializeObject <DeserializeBlockNinja>(jsonStr));
        }