private void AddGlobalPreset(Preset preset) { PresetDataManager.AddNewPreset(preset); }
private void OnImportPresetsClicked(object sender, RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.AddExtension = true; dialog.CheckFileExists = true; dialog.CheckPathExists = true; dialog.DefaultExt = "*.xml"; dialog.DereferenceLinks = true; dialog.Filter = "XML file (*.xml)|*.xml"; dialog.Multiselect = false; dialog.Title = "Choose presets file to import"; dialog.ValidateNames = true; Interceptor.Interception.DisableMouseEvents = true; var result = dialog.ShowDialog(this); Interceptor.Interception.DisableMouseEvents = false; if (result != true) { return; } var extension = System.IO.Path.GetExtension(dialog.FileName); if (extension.ToLower() != ".xml") { Controls.MessageBox.Show( "You must provide an xml file!", ApplicationInfo.AppName, MessageBoxButton.OK, MessageBoxImage.Error); return; } List <Preset> presets = new List <Preset>(); Exception ex = null; try { presets = PresetData.Deserialize(dialog.FileName).Presets.ToList(); } catch (Exception currentVersionException) { ex = currentVersionException; } if (ex != null) { ex = null; try { presets = PresetUpgrader.GetUpgradedPresets(dialog.FileName).ToList(); } catch (Exception oldVersionException) { ex = oldVersionException; } } if (ex != null) { LogWriter.Write(ex.ToString()); Controls.MessageBox.Show( "Failed to load presets! See " + LogWriter.GetLogFileName + " for more details", ApplicationInfo.AppName, MessageBoxButton.OK, MessageBoxImage.Error); return; } var presetNames = string.Empty; var overwriteString = string.Empty; foreach (var preset in presets) { presetNames += Environment.NewLine + preset.Name; var duplicate = PresetDataManager.FindPreset(preset.Name); if (duplicate != null) { presetNames += " [Will be overwritten]"; overwriteString = "/overwrite"; } } var message = string.Format( "Are you sure that you want to add{0} the following presets?{1}{2}", overwriteString, Environment.NewLine, presetNames); var confirm = Controls.MessageBox.Show( message, ApplicationInfo.AppName, MessageBoxButton.YesNo, MessageBoxImage.Question); if (confirm == MessageBoxResult.Yes) { foreach (var preset in presets) { var duplicateToDelete = PresetDataManager.FindPreset(preset.Name); if (duplicateToDelete != null) { PresetDataManager.DeletePreset(duplicateToDelete); } PresetDataManager.AddNewPreset(preset); } } }