private void Window_Closing(object sender, CancelEventArgs e) { LogWriter.Write("Application is about to close. Checking for unsaved presets..."); // checking for unsaved presets var unsavedPresets = new List <IPreset>(); foreach (var preset in PresetDataManager.CurrentPresets) { if (PresetDataManager.IsPresetChanged(preset)) { unsavedPresets.Add(preset); } } string message = string.Empty; foreach (var preset in unsavedPresets) { message += string.Format("Preset '{0}'{1}", preset.Name, Environment.NewLine); } if (message.Length > 0) { var result = Controls.MessageBox.Show( "Do you want to save the following unsaved presets, before you quit?\r\n\r\n" + message, "You are about to quit " + ApplicationInfo.AppNameVersion, MessageBoxButton.YesNoCancel, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { // save the presets PresetDataManager.WritePresetDataToFile(); } e.Cancel = result == MessageBoxResult.Cancel; } }
private void Window_Closing(object sender, CancelEventArgs e) { LogWriter.Write("Application is about to close. Checking for unsaved presets..."); // Checking for unsaved presets var unsavedPresets = new List <IPreset>(); foreach (var preset in PresetDataManager.CurrentPresets) { if (PresetDataManager.IsPresetChanged(preset)) { unsavedPresets.Add(preset); } } string message = string.Empty; foreach (var preset in unsavedPresets) { message += string.Format("Preset '{0}'{1}", preset.Name, Environment.NewLine); } if (message.Length > 0) { var result = Controls.MessageBox.Show( "Do you want to save the following unsaved presets, before you quit?\r\n\r\n" + message, "You are about to quit " + ApplicationInfo.AppNameVersion, MessageBoxButton.YesNoCancel, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { // save the presets PresetDataManager.WritePresetDataToFile(); } e.Cancel = result == MessageBoxResult.Cancel; } else { // We may have a deleted preset(s) var xmlPresets = PresetDataManager.ReadPresetDataFromFile(); bool hasChanges = false; foreach (var preset in xmlPresets.Presets) { try { if (PresetDataManager.IsPresetChanged(preset)) { hasChanges = true; } } catch (InvalidOperationException) { // Preset is deleted hasChanges = true; } } if (hasChanges) { PresetDataManager.WritePresetDataToFile(); } } }