public void UploadChunk(FileChunk chunk) { using (MemoryStream stream = new MemoryStream(chunk.ChunkData)) { _blobRepository.UploadBlock(chunk.FileId, chunk.ChunkId, stream); SmallChunk smallChunk = new SmallChunk() { ChunkId = chunk.ChunkId, OriginalChunkId = chunk.OriginalChunkId }; _azureCache.PutItem(new CacheItem() { FileId = chunk.FileId, Item = smallChunk }); } }
public void CommitChunks(FileChunk chunk) { List <CacheItem> cacheItems = _azureCache.GetItems(chunk.FileId); Dictionary <string, string> blockIds = cacheItems.Select(p => (SmallChunk)p.Item) .Select(p => new { p.OriginalChunkId, p.ChunkId }) .ToDictionary(d => d.OriginalChunkId, d => d.ChunkId); blockIds = blockIds.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value); _blobRepository.CommintBlocks(chunk.FileId, blockIds.Select(p => p.Value).ToList()); _azureCache.RemoveItems(chunk.FileId); }
public void CommitChunks(FileChunk chunk) { List<CacheItem> cacheItems = _azureCache.GetItems(chunk.FileId); Dictionary<string, string> blockIds = cacheItems.Select(p => (SmallChunk)p.Item) .Select(p => new { p.OriginalChunkId, p.ChunkId }) .ToDictionary(d => d.OriginalChunkId, d => d.ChunkId); blockIds = blockIds.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value); _blobRepository.CommintBlocks(chunk.FileId, blockIds.Select(p => p.Value).ToList()); _azureCache.RemoveItems(chunk.FileId); }