private void DoSerializationWork(ProgressForm progressForm, DoWorkEventArgs e) { StorageSerializationInfo serializationInfo = e.Argument as StorageSerializationInfo; if (serializationInfo != null) { var remoteVaultSerializer = new StorageSerializer( serializationInfo.Model, serializationInfo.TabControl ); ISerializationCancellationToken canceller = new FormSerializationCancellationToken(progressForm); try { remoteVaultSerializer.SaveData( serializationInfo.OutputFolder, serializationInfo.SaveCurrentDatabase, serializationInfo.SaveHistoricDatabase, canceller ); } catch (OperationCanceledException ex) { log.Error("Exception at Concelled", ex); e.Cancel = true; } } }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { frmSaveDialog saveDialog = new frmSaveDialog(); ConnectionData connection = null; ConnectionTabControl currentTab = (ConnectionTabControl)tabMain.SelectedTab.Controls[0]; if (currentTab != null) { connection = currentTab.GetSelectedConnection(); } if (connection == null) { saveDialog.DisableCurrentScope(); } else { saveDialog.SetCurScopeName(connection.SourceConnectionName); } if (saveDialog.ShowDialog() == DialogResult.OK) { if (saveDialog.Scope == frmSaveDialog.ScopeToSave.All) { currentTab = null; } StorageSerializationInfo serializationInfo = new StorageSerializationInfo( this._model, currentTab, saveDialog.Folder, saveDialog.SaveCurrent, saveDialog.SaveHistoric ); ProgressForm form = new ProgressForm { Text = this._model.LocaleManager.GetLocalizedText( this.Name, "lbSerialization", this._model.Settings.InterfaceLanguage ), StartPosition = FormStartPosition.CenterParent }; form.ProgressBar.Style = ProgressBarStyle.Marquee; form.Argument = serializationInfo; form.DoWork += DoSerializationWork; StartSerializationForm(form); } }