示例#1
0
        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;
                }
            }
        }
示例#2
0
        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);
            }
        }