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;
            }
        }
Esempio n. 2
0
        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();
                }
            }
        }