private void SignaturePasswordExecute(object obj) { var certFile = CurrentProfile.PdfSettings.Signature.CertificateFile; if (!_file.Exists(certFile)) { ShowCertFileMessage(); return; } var signaturePasswordInteraction = new SignaturePasswordInteraction(PasswordMiddleButton.Remove, certFile); signaturePasswordInteraction.Password = CurrentProfile.PdfSettings.Signature.SignaturePassword; _interactionRequest.Raise(signaturePasswordInteraction, interaction => { if (interaction.Result == PasswordResult.StorePassword) { CurrentProfile.PdfSettings.Signature.SignaturePassword = interaction.Password; } else if (interaction.Result == PasswordResult.RemovePassword) { CurrentProfile.PdfSettings.Signature.SignaturePassword = ""; } }); }
private void ShowPasswordEntryInteraction(object obj) { var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.None, CertificateFile) { Password = Password }; _interactionRequest.Raise(interaction, SecurityPasswordsCallback); }
public void SettingPassword_SkipCommand_CallsCloseViewAction() { var model = BuildViewModel(); var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, ""); model.SetInteraction(interaction); model.FinishInteraction = () => _eventWasRaised = true; model.SkipCommand.Execute(null); Assert.IsTrue(_eventWasRaised); }
private void SecurityPasswordsCallback(SignaturePasswordInteraction interaction) { switch (interaction.Result) { case PasswordResult.StorePassword: Password = interaction.Password; break; case PasswordResult.RemovePassword: Password = ""; break; } }
public void SetInteraction_RaisesPropertyChanged() { var propertyChangedCalls = new List <string>(); var viewModel = new SignaturePasswordViewModel(null, new SignaturePasswordWindowTranslation()); var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, ""); viewModel.PropertyChanged += (sender, args) => propertyChangedCalls.Add(args.PropertyName); viewModel.SetInteraction(interaction); var expectedProperties = new[] { nameof(viewModel.Interaction), nameof(viewModel.Password), nameof(viewModel.CanRemovePassword), nameof(viewModel.CanSkip) }; CollectionAssert.AreEquivalent(expectedProperties, propertyChangedCalls); }
private SignaturePasswordViewModel BuildViewModel(string expectedPassword = null) { var signaturePasswordCheck = Substitute.For <ISignaturePasswordCheck>(); if (expectedPassword != null) { signaturePasswordCheck.IsValidPassword(Arg.Any <string>(), expectedPassword).Returns(true); } var viewModel = new SignaturePasswordViewModel(signaturePasswordCheck, new SignaturePasswordWindowTranslation()); var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, ""); viewModel.SetInteraction(interaction); return(viewModel); }
private QueryResult <string> QuerySignaturePassword(string certificateFile) { var pwInteraction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, certificateFile); _interactionInvoker.Invoke(pwInteraction); var result = new QueryResult <string>(); switch (pwInteraction.Result) { case PasswordResult.Skip: _logger.Info("User skipped Signature Password. Signing disabled."); return(result); case PasswordResult.StorePassword: result.Data = pwInteraction.Password; result.Success = true; return(result); } throw new AbortWorkflowException("Cancelled the signature password dialog."); }