public async Task <KeyValuePair <string, MemoryStream> > DownloadDocumentAsync(Guid documentId, Guid customerId) { var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DocumentStore"].ConnectionString); var blobClient = storageAccount.CreateCloudBlobClient(); var container = blobClient.GetContainerReference(customerId.ToString().ToLower()); var dbContext = new DashDocsContext(); var document = await dbContext.Documents.SingleAsync(d => d.Id == documentId); var keyvaultResolver = new KeyVaultKeyResolver(GetToken); var encryptionPolicy = new BlobEncryptionPolicy(null, keyvaultResolver); var requestOptions = new BlobRequestOptions { EncryptionPolicy = encryptionPolicy }; var block = container.GetBlockBlobReference(document.BlobPath); var stream = new MemoryStream(); await block.DownloadToStreamAsync(stream, null, requestOptions, null); var content = new KeyValuePair <string, MemoryStream>(document.DocumentName, stream); return(content); }
public async Task <Tuple <MemoryStream, string> > DownloadDocument(Guid documentId, Guid customerId) { var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DocumentStore"].ConnectionString); var blobClient = storageAccount.CreateCloudBlobClient(); var container = blobClient.GetContainerReference(customerId.ToString().ToLower()); var dbContext = new DashDocsContext(); var document = await dbContext.Documents.SingleAsync(d => d.Id == documentId); var block = container.GetBlockBlobReference(document.BlobPath); var stream = new MemoryStream(); await block.DownloadToStreamAsync(stream); var content = new Tuple <MemoryStream, string>(stream, document.DocumentName); return(content); }