private async Task <CasHash> HashStreamToFileAsync(Stream filestream, string filename) { using (var output = await m_cache.ContendedOpenStreamAsync(filename, FileMode.Create, FileAccess.Write, FileShare.None, handlePendingDelete: false)) { using (var hasher = ContentHashingUtilities.HashInfo.CreateContentHasher()) { using (var hashingStream = hasher.CreateReadHashingStream(filestream)) { hashingStream.CopyTo(output); return(new CasHash(hashingStream.GetContentHash())); } } } }