private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (_isNew) { if (!string.IsNullOrWhiteSpace(_fileName) && !string.IsNullOrWhiteSpace(_password)) { SaveAccountCollection(); _isDirty = false; return; } _fileName = null; _password = null; FileDialogResult <string> fileResult = DialogUtility.ShowSaveFileDialog(this, FILE_FILTER, _initialFileDialogDirectory); if (fileResult.Result == DialogResult.OK && fileResult.ResultObject != null) { _fileName = fileResult.ResultObject; FormDialogResult <string> passwordResult = DialogUtility.ShowPasswordDialog(this); if (passwordResult.Result == DialogResult.OK && passwordResult.ResultObject != null) { _password = passwordResult.ResultObject; SaveAccountCollection(); _isDirty = false; } } } else { SaveAccountCollection(); _isDirty = false; } }
private AccountCollection OpenAccountCollection() { AccountCollection collection = null; FileDialogResult <string> fileResult = DialogUtility.ShowOpenFileDialog(this, FILE_FILTER, _initialFileDialogDirectory); if (fileResult.Result != DialogResult.OK && fileResult.ResultObject == null) { return(null); } _fileName = fileResult.ResultObject; FormDialogResult <string> passwordResult = DialogUtility.ShowPasswordDialog(this); if (passwordResult.Result != DialogResult.OK && passwordResult.ResultObject == null) { return(null); } _password = passwordResult.ResultObject; IFactory factory = FormFactory.GetFactory(_password, _appSettings.Value.IV, _appSettings.Value.Salt); IStorage storage = factory.GetStorage(); ActionList actionList = factory.GetActionList(); try { string serialized = storage.RetrieveData(_fileName); collection = actionList.ReverseActions <AccountCollection>(serialized); } catch (DeserializationException) { DialogUtility.ShowErrorMessageBox(this, "Error", "Incorrect password."); } return(collection); }