public async Task DeleteFilesAsync(IEnumerable <Guid> fileIds) { var storageDirectory = _configuration.GetValue <string>("FileStoreDirectory"); foreach (var fileId in fileIds) { var file = _fileMetadataRepository.Get(fileId); var fileDirectory = Path.Combine(storageDirectory, fileId.ToString()); if (Directory.Exists(fileDirectory)) { Directory.Delete(fileDirectory, true); } if (file == null) { continue; } if (file.Store == FileStore.Azure) { var blobReference = await _azureAccountManager.GetBlobReferenceAsync(file); await blobReference.DeleteIfExistsAsync(); } _fileMetadataRepository.Delete(file.Id); } }
public async Task <IActionResult> DownloadSingle(Guid fileId) { var fileMetadata = _fileMetadataRepository.Get(fileId); if (fileMetadata.Store == FileStore.Azure) { var downloadUrl = await _fileUploadManager.GetAzureFileDownloadLinkAsync(fileMetadata); return(RedirectPermanent(downloadUrl)); } var fileStream = await _fileUploadManager.GetFileContentAsync(fileMetadata); var contentType = MimeUtility.GetMimeMapping(fileMetadata.FileName); return(File(fileStream, contentType, fileMetadata.FileName)); }