public async Task SaveFileAsAsync(Guid blobFileId, string fileName) { List <int> chunks; using (var context = new FileUploadDemoContext()) chunks = await context.Set <BlobFileChunks>().Where(x => x.BlobFileId == blobFileId).OrderBy(x => x.ChunkId).Select(x => x.ChunkId).ToListAsync(); if (File.Exists(fileName)) { File.Delete(fileName); } using (var file = File.OpenWrite(fileName)) using (var stream = new MultiStream(GetBlobStreams(blobFileId, chunks))) stream.CopyTo(file); }
public async Task <string> ProcessFileAsync(Guid blobFileId) { List <int> chunks; using (var context = new FileUploadDemoContext()) chunks = await context.Set <BlobFileChunks>().Where(x => x.BlobFileId == blobFileId).OrderBy(x => x.ChunkId).Select(x => x.ChunkId).ToListAsync(); var result = 0; using (var stream = new MultiStream(GetBlobStreams(blobFileId, chunks))) { foreach (var chunk in stream.GetByteChunks(1024)) { result = (result * 31) ^ ComputeHash(chunk); } } return(string.Format("File Hash Code is: {0}", result)); }