Exemplo n.º 1
0
        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 (); 

            }
        }
Exemplo n.º 2
0
        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;
        }