/// <summary> /// The import. /// </summary> /// <param name="filename"> /// The filename. /// </param> public void Import(string filename) { if (!string.IsNullOrEmpty(filename)) { PresetTransportContainer container = null; try { container = HandBrakePresetService.GetPresetsFromFile(filename); } catch (Exception exc) { this.errorService.ShowError(Resources.Main_PresetImportFailed, Resources.Main_PresetImportFailedSolution, exc); return; } if (container?.PresetList == null || container.PresetList.Count == 0) { this.errorService.ShowError(Resources.Main_PresetImportFailed, Resources.Main_PresetImportFailedSolution, Resources.NoAdditionalInformation); return; } // HBPreset Handling if (container.PresetList != null) { bool containsBuildInPreset = false; foreach (var objectPreset in container.PresetList) { PresetCategory category = JsonConvert.DeserializeObject <PresetCategory>(objectPreset.ToString()); if (category != null && category.ChildrenArray != null && category.ChildrenArray.Count > 0) { foreach (HBPreset hbPreset in category.ChildrenArray) { Preset preset = this.ConvertHbPreset(hbPreset); preset.IsPresetDisabled = this.IsPresetDisabled(preset); if (preset != null && !preset.IsBuildIn) { this.AddOrUpdateImportedPreset(preset); } else { containsBuildInPreset = true; } } } else { HBPreset hbPreset = JsonConvert.DeserializeObject <HBPreset>(objectPreset.ToString()); if (hbPreset != null) { Preset preset = this.ConvertHbPreset(hbPreset); preset.IsPresetDisabled = this.IsPresetDisabled(preset); if (preset != null && !preset.IsBuildIn) { this.AddOrUpdateImportedPreset(preset); } else { containsBuildInPreset = true; } } } } if (containsBuildInPreset) { this.errorService.ShowMessageBox( Properties.Resources.PresetService_ImportingBuiltInWarning, Properties.Resources.Warning, MessageBoxButton.OK, MessageBoxImage.Warning); } } } }
/// <summary> /// Load in the Built-in and User presets into the collection /// </summary> private void LoadPresets() { // First clear the Presets arraylists this.presets.Clear(); // Load the presets file. try { // If we don't have a presets file. Create one for first load. if (!File.Exists(this.presetFile)) { this.UpdateBuiltInPresets(); return; } // Otherwise, we already have a file, so lets try load it. PresetTransportContainer container = null; try { container = HandBrakePresetService.GetPresetsFromFile(this.presetFile); } catch (Exception exc) { this.ServiceLogMessage("Corrupted Presets File Detected: " + Environment.NewLine + exc); } // Sanity Check. Did the container deserialise. if (container?.PresetList == null) { this.ServiceLogMessage("Attempting Preset Recovery ..."); string filename = this.ArchivePresetFile(this.presetFile, true); this.errorService.ShowMessageBox( Resources.PresetService_UnableToLoadPresets + filename, Resources.PresetService_UnableToLoad, MessageBoxButton.OK, MessageBoxImage.Exclamation); this.UpdateBuiltInPresets(); this.ServiceLogMessage("Recovery Completed!"); return; // Update built-in presets stores the presets locally, so just return. } // Force Upgrade of presets if (this.userSettingService.GetUserSetting <int>(UserSettingConstants.ForcePresetReset) < ForcePresetReset) { this.userSettingService.SetUserSetting(UserSettingConstants.ForcePresetReset, ForcePresetReset); string fileName = this.ArchivePresetFile(this.presetFile, true); this.errorService.ShowMessageBox( Resources.Presets_PresetForceReset + Environment.NewLine + Environment.NewLine + Resources.PresetService_ArchiveFile + fileName, Resources.PresetService_UnableToLoad, MessageBoxButton.OK, MessageBoxImage.Information); this.UpdateBuiltInPresets(); // Update built-in presets stores the presets locally, so just return. return; } this.ProcessPresetList(container); } catch (Exception ex) { this.ServiceLogMessage(ex.ToString()); this.ArchivePresetFile(this.presetFile, true); this.UpdateBuiltInPresets(); } }