private void ModernWindow_Closing(object sender, CancelEventArgs e) { var hasModifications = model.AccountGroups.Groups .Select(g => g.ModificationTracker.ModifiedElements.Any()) .Where(m => m) .Any(); if (hasModifications) { MessageBoxResult r = ModernDialog.ShowMessage( "Save unsaved changes?", "Save or Ignore", MessageBoxButton.YesNoCancel, Window.GetWindow(this)); if (r == MessageBoxResult.Yes) { UIHelper.WithLongEncryptionDecryptionWarning( Window.GetWindow(this), "Saving...", () => PersistenceProvider.Persist(model.AccountGroups) ); } else if (r == MessageBoxResult.Cancel) { e.Cancel = true; } } }
private void SaveButton_Click(object sender, RoutedEventArgs e) { UIHelper.WithLongEncryptionDecryptionWarning( Window.GetWindow(this), "Saving...", () => PersistenceProvider.Persist(model.AccountGroups) ); }