public RsaFileDecipherZipDecorator(IRsaFileDecipher rsaFileDecipher,
                                    IEnvironmentHelper environmentHelper,
                                    IZipAlgorithm zipAlgorithm)
 {
     this.rsaFileDecipher            = rsaFileDecipher;
     this.environmentHelper          = environmentHelper;
     this.zipAlgorithm               = zipAlgorithm;
     rsaFileDecipher.BlockCompleted += rsaFileDecipher_BlockCompleted;
 }
 public DecipherManager(IEnvironmentHelper environmentHelper,
                        IRsaFileDecipher rsaFileDecipher,
                        IMessageHelper messageHelper,
                        IFileUnifier fileUnifier)
 {
     this.environmentHelper = environmentHelper;
     this.rsaFileDecipher   = rsaFileDecipher;
     this.messageHelper     = messageHelper;
     this.fileUnifier       = fileUnifier;
 }
 private void form_Decipher(object sender, EventArgs e)
 {
     if (environmentHelper.DirectoryExists(form.OutputDirectoryPath))
     {
         var dialogResult = messageHelper.Show("Directory already exists. Would you like to overwrite it?",
                                               "Папка уже существует. Вы хотите перезаписать ее?", MessageBoxButtons.YesNo);
         if (dialogResult == DialogResult.No)
         {
             return;
         }
     }
     try {
         privateKey = keySerializer.DeserializePrivateKey(form.PrivateKey);
     } catch (KeySerializationException) {
         messageHelper.Show("Private key has errors.", "Секретный ключ содержит ошибки.");
         return;
     }
     rsaFileDecipher = rsaFactory.CreateRsaFileDecipher(form.InputFileName);
     rsaFileDecipher.BlockCompleted += decipher_BlockCompleted;
     form.DecipherEnabled            = false;
     RefreshThread();
     thread.Start();
 }