private void DoWork(object sender, DoWorkEventArgs e) { if (_selectedAction == SelectedAction.IsNotChosen) { IsRunning = true; OnPropertyChanged($"IsRunning"); MessageBox.Show("Не выбран метод шифрования"); Thread.Sleep(1); return; } if (_inputFileName.Length == 0 || _outputFileName.Length == 0) { IsRunning = true; OnPropertyChanged($"IsRunning"); MessageBox.Show("Пути до файлов не заданы"); Thread.Sleep(1); return; } CurrentProgress = 0; OnPropertyChanged($"CurrentProgress"); string result = ""; switch (_selectedAction) { case SelectedAction.IsMyEncryptionAlgorithm: result = _encryptionAlgorithm.MyAlgorithm(_inputFileName, _outputFileName, _modeEncryption); break; case SelectedAction.IsMyDes: result = _encryptionAlgorithm.MyImplementationDes(_inputFileName, _outputFileName, _modeEncryption); break; case SelectedAction.IsStandartDes: result = _encryptionAlgorithm.StandartDes(_inputFileName, _outputFileName, _modeEncryption); break; case SelectedAction.IsVernam: result = _encryptionAlgorithm.Vernam(_inputFileName, _outputFileName); break; case SelectedAction.IsRc4: result = _encryptionAlgorithm.Rc4(_inputFileName, _outputFileName); break; } if (result == "") { CurrentProgress = 100; Thread.Sleep(1); OnPropertyChanged($"CurrentProgress"); } else { MessageBox.Show(result); CurrentProgress = -1; Thread.Sleep(1); } IsRunning = true; OnPropertyChanged($"IsRunning"); }