/// <summary>Update the theme contents.</summary> /// <param name="themeInformation">The theme Information.</param> /// <param name="colorPalette">The color Palette.</param> public void UpdateTheme(ThemeInformation themeInformation, ColorPalette colorPalette) { _information = themeInformation; _colorPalette = colorPalette; _rawTheme = ThemeSerialization.Serialize(this); }
/// <summary>Loads the <see cref="Theme" /> from the file path.</summary> /// <param name="filePath">The file path.</param> public void Load(string filePath) { if (string.IsNullOrEmpty(filePath)) { throw new NoNullAllowedException(ExceptionMessenger.IsNullOrEmpty(filePath)); } if (!File.Exists(filePath)) { throw new FileNotFoundException(ExceptionMessenger.FileNotFound(filePath)); } try { if (File.Exists(filePath)) { Theme theme = ThemeSerialization.Deserialize(filePath); UpdateTheme(theme.Information, theme.ColorPalette); } else { ConsoleEx.WriteDebug(new FileNotFoundException(ExceptionMessenger.FileNotFound(filePath))); } } catch (Exception e) { ConsoleEx.WriteDebug(e); } }
/// <summary>Loads a <see cref="Theme" /> from resources.</summary> /// <param name="themes">The theme.</param> private void LoadThemeFromResources(Themes themes) { try { Theme theme = ThemeSerialization.Deserialize(themes); UpdateTheme(theme.Information, theme.ColorPalette); } catch (Exception e) { ConsoleEx.WriteDebug(e); } }
/// <summary>Saves the theme to a file.</summary> /// <param name="filePath">The file path.</param> public void Save(string filePath) { if (string.IsNullOrEmpty(filePath)) { throw new NoNullAllowedException(ExceptionMessenger.IsNullOrEmpty(filePath)); } _rawTheme = ThemeSerialization.Serialize(this); if (string.IsNullOrEmpty(_rawTheme)) { throw new ArgumentNullException(nameof(_rawTheme)); } XDocument _theme = XDocument.Parse(_rawTheme); _theme.Save(filePath); }