Пример #1
0
        private void SyncToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var packages = this.annotationPackageListControl.GetAllPackages().Where(o => o.IsDirty).ToArray();

            if (packages.Length > 0)
            {
                // Proceed with syncing
                var syncConfirmationDialog = new SyncConfirmationDialog();
                syncConfirmationDialog.Text = "Confirm syncing";
                syncConfirmationDialog.SetDescriptions("Do you want to sync the following packages?", string.Empty);
                syncConfirmationDialog.SetUnsyncedPackages(packages.ToList());

                var dialogResult = syncConfirmationDialog.ShowDialog();
                if (dialogResult == DialogResult.OK)
                {
                    var syncForm = new SyncProgressDialog(this._annotationPackageProvider);
                    syncForm.Show();

                    _ = Task.Run(() => syncForm.Sync(packages));

                    this.annotationPackageListControl.RefreshData();
                }
            }
            else
            {
                MessageBox.Show("There are no unchanged packages to sync.", "Nothing to sync!");
            }
        }
Пример #2
0
        private bool ConfirmDiscardingUnsavedChanges()
        {
            var unsyncedPackages = this.annotationPackageListControl.GetAllPackages().Where(o => o.IsDirty);

            if (unsyncedPackages.Any())
            {
                var syncConfirmationDialog = new SyncConfirmationDialog();
                syncConfirmationDialog.Text = "Confirm closing";
                syncConfirmationDialog.SetDescriptions("The following packages still have unsaved changes", "Do you want to close and discard these changes?");
                syncConfirmationDialog.SetUnsyncedPackages(unsyncedPackages.ToList());

                var dialogResult = syncConfirmationDialog.ShowDialog();

                if (dialogResult == DialogResult.Cancel)
                {
                    return(false);
                }
            }

            return(true);
        }