public HomeController(IRequestRepository requestRepository) { this.requestRepository = requestRepository; if (FilePasswords != null) { FilePasswords.Where(p => p.Value.Expires < DateTime.Now).ToList().ForEach( f => FilePasswords.Remove(f.Key)); } }
private static void StoreEncryptedFileInTemporaryMemory(Message message) { message.TemporaryDownloadId = SymmetricCryptoProvider.GenerateKeyPhrase(64); FilePasswords.Add(message.TemporaryDownloadId, new TemporaryDownloadKey { Expires = DateTime.Now.AddSeconds(PasswordExpiresInSeconds), MessageId = message.MessageId, Passphrase = message.EncryptionKey }); // get filename byte[] decryptedArray = Convert.FromBase64String(message.MessageData); var zipStream = new MemoryStream(decryptedArray); using (ZipFile zip = ZipFile.Read(zipStream)) { message.MessageData = zip.First().FileName; } }