public IActionResult GetResultFile(string transID) { var result = _bigChainDbService.GetMetaDataAndAssetFromTransactionId <string, double>(transID); var doctorSignPrivateKey = HttpContext.Session.GetString(Globals.currentDSPriK); var doctorAgreePrivateKey = HttpContext.Session.GetString(Globals.currentDAPriK); var doctorSignPublicKey = EncryptionService.getSignPublicKeyStringFromPrivate(doctorSignPrivateKey); if (result.metadata.AccessList.Keys.Contains(doctorSignPublicKey)) { var hashedKey = result.metadata.AccessList[doctorSignPublicKey]; var dataDecryptionKey = EncryptionService.getDecryptedEncryptionKey(hashedKey, doctorAgreePrivateKey); var encryptedFile = _bigChainDbService.GetAssociatedTestResultFile(result.id); if (encryptedFile != "") { var data = EncryptionService.getDecryptedAssetData(encryptedFile, dataDecryptionKey); var asset = JsonConvert.DeserializeObject <FileData>(data); //get encrypted file from ipfs string encryptedFileData = _bigChainDbService.GetTextFromIPFS(asset.Data); string fileData = EncryptionService.getDecryptedAssetData(encryptedFileData, dataDecryptionKey); byte[] fileBytes = Convert.FromBase64String(fileData); return(File(fileBytes, asset.Type, asset.Name)); } } return(new EmptyResult()); }