protected void OnLockUnlockClicked (object sender, EventArgs e) { if (pwdPicker == null) { pwdPicker = new PasswordPicker (this.m_applicationViewModel.Experiment.ExperimentInfo.ChallengePassword, this.m_applicationViewModel.Experiment.ExperimentInfo.ExperimentPassword); pwdPicker.Destroyed += new EventHandler (passwordPickerDestroyed); this.Modal = false; pwdPicker.Modal = true; pwdPicker.ShowAll (); } }
public void passwordPickerDestroyed (object sender, EventArgs e) { if (pwdPicker.passwordChanged) { this.Modal = true; //update passwords in the metadata this.m_applicationViewModel.Experiment.ExperimentInfo.ChallengePassword = pwdPicker.challengePwd; this.m_applicationViewModel.Experiment.ExperimentInfo.ExperimentPassword = pwdPicker.experimentPwd; string oldPath = m_applicationViewModel.Experiment.ExperimentInfo.FilePath; string extension = System.IO.Path.GetFileNameWithoutExtension (oldPath); if (!string.IsNullOrEmpty (pwdPicker.challengePwd) || !string.IsNullOrEmpty (pwdPicker.experimentPwd)) { //there is AT LEAST one password //call the procedure to save a locked esxperiment in TEMLX format string path; if (!extension.Equals (".temlx")) { path = addExt (m_applicationViewModel.Experiment.ExperimentInfo.FilePath, ".temlx"); } else { //save an updated version of the experiment path = m_applicationViewModel.Experiment.ExperimentInfo.FilePath; } ExperimentManager.SaveToCrypt (this.m_applicationViewModel.Experiment, path); } else { //there are no password so we should decrypt the file, if this is a TEMLX //save the experiment decrypted and delete the .temlx file string uniquePat = GetUniqueName (m_applicationViewModel.Experiment.ExperimentInfo.FilePath, ".teml"); ExperimentManager.Save (this.m_applicationViewModel.Experiment, uniquePat); } //delete old file TEML ExperimentManager.DeleteFile (oldPath); } pwdPicker = null; }