Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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);
        }