public static void RaiseAppEvent(Common.AppEventTypeEnum eventType, Object[] parms) { AppEventOccured(eventType, parms); }
private void Common_AppEventOccured(Common.AppEventTypeEnum eventType, Object[] parms) { switch (eventType) { case Common.AppEventTypeEnum.AppStarted: DeleteTemporaryFiles(); ButtonLoadDataEnabled(false); ButtonOpenLoadedFileFolderEnabled(false); ButtonEncryptEnabled(false); ButtonDecryptEnabled(false); LabelKeySizeUpdate(); break; case Common.AppEventTypeEnum.AlgoPrepared: this.PanelButtonsEnabled(true); ButtonLoadDataEnabled(true); ButtonOpenLoadedFileFolderEnabled(false); ButtonEncryptEnabled(false); ButtonDecryptEnabled(false); this.PrintRSAParameters(false); break; case Common.AppEventTypeEnum.FileLoaded: ButtonEncryptEnabled(true); ButtonOpenLoadedFileFolderEnabled(true); ButtonDecryptEnabled(false); this.fileLoaded = true; RichTextBoxConsoleAddText("File to encrypt loaded!"); break; case Common.AppEventTypeEnum.EncryptionDone: RichTextBoxConsoleAddText(String.Format("Generating final output! : {0}", DateTime.Now)); PostProcessEncryptedFiles(); RichTextBoxConsoleAddText(String.Format("Encryption done! Verify encrypted.enc file! : {0}", DateTime.Now)); this.PanelButtonsEnabled(true); ButtonDecryptEnabled(true); UpdateCurrOperationStatus(""); break; case Common.AppEventTypeEnum.AlgoPreparationStarted: this.PanelButtonsEnabled(false); LabelKeySizeUpdate(); break; case Common.AppEventTypeEnum.AlgoPreparationRestarted: this.ParamsToDefault(); this.DeleteTemporaryFiles(); ButtonLoadDataEnabled(false); ButtonOpenLoadedFileFolderEnabled(false); ButtonEncryptEnabled(false); ButtonDecryptEnabled(false); RichTextBoxConsoleClear(); break; case Common.AppEventTypeEnum.EncryptionStarted: UpdateCurrOperationStatus("Encryption in progress..."); this.PanelButtonsEnabled(false); workersFinishedJob = 0; break; case Common.AppEventTypeEnum.DecryptionStarted: UpdateCurrOperationStatus("Decryption in progress..."); this.PanelButtonsEnabled(false); workersFinishedJob = 0; pBSteps = new System.Collections.ArrayList(); break; case Common.AppEventTypeEnum.DecryptionDone: RichTextBoxConsoleAddText(String.Format("Generating final output! : {0}", DateTime.Now)); PostProcessDecryptedFiles(); this.PanelButtonsEnabled(true); RichTextBoxConsoleAddText(String.Format("Decryption done! Verify decrypted.dec file! : {0}", DateTime.Now)); UpdateCurrOperationStatus(""); break; case Common.AppEventTypeEnum.SettingsSaved: if (parms == null) { break; } if ((UInt32)parms[0] != Properties.AppSettings.Default.keySize) { Common_AppEventOccured(Common.AppEventTypeEnum.AlgoPreparationRestarted, null); RichTextBoxConsoleAddText(String.Format("Key size modified. Key size: {0} bits", Properties.AppSettings.Default.keySize)); } if ((Int32)parms[1] != Properties.AppSettings.Default.showKeyInBase && (lastOperation == Common.AppEventTypeEnum.AlgoPrepared || lastOperation == Common.AppEventTypeEnum.SettingsSaved)) { RichTextBoxConsoleClear(); PrintRSAParameters(false); } LabelKeySizeUpdate(); break; case Common.AppEventTypeEnum.NrThreadsBiggerThanNrCores: RichTextBoxConsoleAddText("Warning! Running more threads than cores on the machine!"); break; case Common.AppEventTypeEnum.WorkerFinishedJob: if (parms != null && parms[0] != null && parms[1] != null) { if ((Common.AppEventTypeEnum)parms[1] != Common.AppEventTypeEnum.EncryptionDone && parms[2] != null) { pBSteps.Add(parms[2]); } workersFinishedJob++; if (workersFinishedJob == Properties.AppSettings.Default.threadsRSA) { Common.RaiseAppEvent((Common.AppEventTypeEnum)parms[1], null); } } break; case Common.AppEventTypeEnum.OperationAborted: PanelButtonsEnabled(true); // This will ensure that the timer and progressBar are updated and stopped SetProgressBarToMax(); UpdateCurrOperationStatus(""); RichTextBoxConsoleAddText("Operation aborted!"); break; case Common.AppEventTypeEnum.RSADataExported: String messageToShow = String.Empty; switch (Properties.AppSettings.Default.impExpKeySetting) { case (Int32)Common.ImpExpKeyDataTypeEnum.BothKeys: messageToShow = String.Format("RSA data exported to: {0}", Properties.AppSettings.Default.encryptionKeysExportFileName);; break; case (Int32)Common.ImpExpKeyDataTypeEnum.PrivateKey: messageToShow = String.Format("Private key exported to: {0}", Properties.AppSettings.Default.privateKeyExportFileName); break; case (Int32)Common.ImpExpKeyDataTypeEnum.PublicKey: messageToShow = String.Format("Public key exported to: {0}", Properties.AppSettings.Default.publicKeyExportFileName); break; default: break; } MessageWindow.ShowInfo(messageToShow); break; case Common.AppEventTypeEnum.RSADataImported: switch (rSACE.ActionsAvailable) { case RSACustomEncryption.ActionsAvailableEnum.Encrypt | RSACustomEncryption.ActionsAvailableEnum.Decrypt: case RSACustomEncryption.ActionsAvailableEnum.Encrypt: this.PanelButtonsEnabled(true); ButtonLoadDataEnabled(true); ButtonOpenLoadedFileFolderEnabled(false); ButtonEncryptEnabled(false); ButtonDecryptEnabled(true); this.PrintRSAParameters(true); break; case RSACustomEncryption.ActionsAvailableEnum.Decrypt: PanelButtonsEnabled(true); ButtonLoadDataEnabled(false); ButtonOpenLoadedFileFolderEnabled(false); ButtonEncryptEnabled(false); ButtonDecryptEnabled(true); break; } break; case Common.AppEventTypeEnum.DecryptionImpossible: if (parms != null) { workersFinishedJob++; if (workersFinishedJob == Properties.AppSettings.Default.threadsRSA) { MessageWindow.ShowError("Cannot decrypt data with the provided key!"); SetProgressBarToMax(); UpdateCurrOperationStatus(""); this.PanelButtonsEnabled(true); } } break; default: break; } lastOperation = eventType; }