private bool SaveRepository(string filename) { bool ret = false; try { if (passwordRepository == null) { return(false); } if (!ReenterPassword()) { return(false); } if (string.IsNullOrEmpty(filename)) { var dlg = new Microsoft.Win32.SaveFileDialog() { InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Filter = Properties.Resources.FILE_DIALOG_FILTER }; var initDir = Properties.Settings.Default.InitialDirectory.ReplaceSpecialFolder(); if (Directory.Exists(initDir)) { dlg.InitialDirectory = initDir; } if (dlg.ShowDialog() != true) { return(false); } if (!ReenterPassword()) { return(false); } filename = dlg.FileName; Properties.Settings.Default.InitialDirectory = new FileInfo(filename).Directory.FullName; } var keyDirectory = keyDirectoryCache.Get(passwordRepository.Id); passwordRepository.Save(filename, keyDirectory, passwordSecureString); passwordFilename = filename; Properties.Settings.Default.LastUsedRepositoryFile = filename; SortListView(); ret = true; } catch (Exception ex) { HandleError(ex); } UpdateControls(); return(ret); }
public PropertiesWindow(Window owner, string title, KeyDirectoryCache keyDirCache, PasswordRepository repository, string filename) { Owner = owner; Title = title; WindowStartupLocation = WindowStartupLocation.CenterOwner; Topmost = Properties.Settings.Default.Topmost; this.keyDirCache = keyDirCache; this.repository = repository; InitializeComponent(); textBoxName.Text = repository.Name; textBoxDescription.Text = repository.Description; textBoxPasswordFile.Text = filename; textBoxKeyDirectory.Text = keyDirCache.Get(repository.Id); textBoxKey.Text = repository.Id; textBoxName.Focus(); }
public LoginWindow(Window owner, string title, KeyDirectoryCache keyDirCache, string repositoryFile) { Owner = owner; Title = title; WindowStartupLocation = WindowStartupLocation.CenterOwner; Topmost = Properties.Settings.Default.Topmost; this.keyDirCache = keyDirCache; this.repositoryFile = repositoryFile; InitializeComponent(); labelDescription.Content = string.Format( Properties.Resources.LABEL_ENTER_MASTER_PASSWORD_FOR_0, new FileInfo(repositoryFile).Name); var id = PasswordRepository.GetIdFromFile(repositoryFile); textBoxKey.Text = id; textBoxKeyDirectory.Text = keyDirCache.Get(id); passwordBox.Focus(); UpdateControls(); }