/// <summary> /// Initialises the class for reading the XML file. /// </summary> private void Initialise() { try { Settings = new Settings(); MissingEpisodeSettings = new MissingEpisodeSettings(); // Check that the file exists if (!File.Exists(XmlFile)) { // Create the file and populate with default settings. var root = new XElement( "TVSorter".GetElementName(), new XAttribute("version", XmlMigration.XmlVersion), Settings.ToXml(), MissingEpisodeSettings.ToXml(), new XElement("Shows".GetElementName())); var doc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), root); doc.Save(XmlFile); } GetDocument(); LoadSettings(); LoadMissingEpisodeSettings(); } catch (Exception e) { throw new IOException("Unable to load XML file.", e); } }
/// <summary> /// Loads the specified missing episode settings from XML. /// </summary> /// <param name="settings"> /// The settings to load into. /// </param> /// <param name="missingEpsiodeElement"> /// The XML element to load from. /// </param> internal static void FromXml(this MissingEpisodeSettings settings, XElement missingEpsiodeElement) { settings.HideNotYetAired = bool.Parse(missingEpsiodeElement.GetAttribute("hidenotaired", "false")); settings.HideLocked = bool.Parse(missingEpsiodeElement.GetAttribute("hidelocked", "false")); settings.HidePart2 = bool.Parse(missingEpsiodeElement.GetAttribute("hidepart2", "false")); settings.HideSeason0 = bool.Parse(missingEpsiodeElement.GetAttribute("hideseason0", "false")); settings.HideMissingSeasons = bool.Parse(missingEpsiodeElement.GetAttribute("hidemissingseasons", "false")); }
/// <summary> /// Converts the settings to XML. /// </summary> /// <param name="settings"> /// The settings. /// </param> /// <returns> /// The XML for the settings. /// </returns> internal static XElement ToXml(this MissingEpisodeSettings settings) { return(new XElement( "MissingEpisodeSettings".GetElementName(), new XAttribute("hidenotaired", settings.HideNotYetAired), new XAttribute("hidelocked", settings.HideLocked), new XAttribute("hidepart2", settings.HidePart2), new XAttribute("hideseason0", settings.HideSeason0), new XAttribute("hidemissingseasons", settings.HideMissingSeasons))); }