/// </summary>\r
public class PresetService : IPresetService\r
{\r
+ // TODO Strip out the error handling from this service and let upstream UI layer handle it.\r
+\r
#region Private Variables\r
\r
public const int ForcePresetReset = 3;\r
{\r
foreach (var objectPreset in container.PresetList)\r
{\r
- HBPreset hbPreset = JsonConvert.DeserializeObject<HBPreset>(objectPreset.ToString());\r
-\r
- Preset preset = null;\r
- try\r
+ PresetCategory category = JsonConvert.DeserializeObject<PresetCategory>(objectPreset.ToString());\r
+ if (category != null && category.ChildrenArray.Count > 0)\r
{\r
- preset = JsonPresetFactory.ImportPreset(hbPreset);\r
- preset.Category = UserPresetCatgoryName; // TODO can we get this from the preset?\r
-\r
- // IF we are using Source Max, Set the Max Width / Height values.\r
- if (preset.PictureSettingsMode == PresetPictureSettingsMode.SourceMaximum)\r
+ foreach (HBPreset hbPreset in category.ChildrenArray)\r
{\r
- preset.Task.MaxWidth = preset.Task.Height;\r
- preset.Task.MaxHeight = preset.Task.Width;\r
+ Preset preset = this.ConvertHbPreset(hbPreset);\r
+ if (preset != null)\r
+ {\r
+ this.AddOrUpdateImportedPreset(preset);\r
+ }\r
}\r
}\r
- catch (Exception exc)\r
- {\r
- this.errorService.ShowError(Resources.Main_PresetImportFailed, Resources.Main_PresetImportFailedSolution, exc);\r
- }\r
-\r
- if (preset == null)\r
- {\r
- this.errorService.ShowError(Resources.Main_PresetImportFailed, Resources.Main_PresetImportFailedSolution, string.Empty);\r
- return;\r
- }\r
-\r
- if (this.CheckIfPresetExists(preset.Name))\r
+ else\r
{\r
- if (!this.CanUpdatePreset(preset.Name))\r
- {\r
- MessageBox.Show(Resources.Main_PresetErrorBuiltInName, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
- return;\r
- }\r
-\r
- MessageBoxResult result = MessageBox.Show(Resources.Main_PresetOverwriteWarning, Resources.Overwrite, MessageBoxButton.YesNo, MessageBoxImage.Warning);\r
- if (result == MessageBoxResult.Yes)\r
+ HBPreset hbPreset = JsonConvert.DeserializeObject<HBPreset>(objectPreset.ToString());\r
+ if (hbPreset != null)\r
{\r
- this.Update(preset);\r
+ Preset preset = this.ConvertHbPreset(hbPreset);\r
+ if (preset != null)\r
+ {\r
+ this.AddOrUpdateImportedPreset(preset);\r
+ }\r
}\r
}\r
- else\r
- {\r
- this.Add(preset, false);\r
- }\r
}\r
}\r
}\r
}\r
}\r
\r
+ private Preset ConvertHbPreset(HBPreset hbPreset)\r
+ {\r
+ Preset preset = null;\r
+\r
+ preset = JsonPresetFactory.ImportPreset(hbPreset);\r
+ preset.Category = UserPresetCatgoryName; // TODO can we get this from the preset?\r
+\r
+ // IF we are using Source Max, Set the Max Width / Height values.\r
+ if (preset.PictureSettingsMode == PresetPictureSettingsMode.SourceMaximum)\r
+ {\r
+ preset.Task.MaxWidth = preset.Task.Height;\r
+ preset.Task.MaxHeight = preset.Task.Width;\r
+ }\r
+\r
+ return preset;\r
+ }\r
+\r
+ private void AddOrUpdateImportedPreset(Preset preset)\r
+ {\r
+ if (preset == null)\r
+ {\r
+ this.errorService.ShowError(Resources.Main_PresetImportFailed, Resources.Main_PresetImportFailedSolution, string.Empty);\r
+ return;\r
+ }\r
+\r
+ if (this.CheckIfPresetExists(preset.Name))\r
+ {\r
+ if (!this.CanUpdatePreset(preset.Name))\r
+ {\r
+ MessageBox.Show(Resources.Main_PresetErrorBuiltInName, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);\r
+ return;\r
+ }\r
+\r
+ MessageBoxResult result = MessageBox.Show(string.Format(Resources.Main_PresetOverwriteWarning, preset.Name), Resources.Overwrite, MessageBoxButton.YesNo, MessageBoxImage.Warning);\r
+ if (result == MessageBoxResult.Yes)\r
+ {\r
+ this.Update(preset);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ this.Add(preset, false);\r
+ }\r
+ }\r
+\r
#endregion\r
}\r
}\r