From 2aba945f8d77127ca04fe1262054a67b64ec82d3 Mon Sep 17 00:00:00 2001 From: Alex Hudson Date: Tue, 28 Jun 2011 18:09:34 +0100 Subject: [PATCH] Simplify some config functions, add a notification server entry --- SparkleLib/SparkleConfig.cs | 58 +++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/SparkleLib/SparkleConfig.cs b/SparkleLib/SparkleConfig.cs index 88f99835..ffc493ed 100644 --- a/SparkleLib/SparkleConfig.cs +++ b/SparkleLib/SparkleConfig.cs @@ -131,7 +131,6 @@ namespace SparkleLib { } } - public void AddFolder (string name, string url, string backend) { XmlNode node_name = CreateElement ("name"); @@ -165,53 +164,50 @@ namespace SparkleLib { Save (); } + private XmlNode GetFolder (string name) + { + return SelectSingleNode(String.Format("/sparkleshare/folder[name='{0}']", name)); + } + + private string GetFolderValue (string name, string key) + { + XmlNode folder = this.GetFolder(name); + + if ((folder != null) && (folder[key] != null)) { + return folder[key].InnerText; + } + return null; + } public bool FolderExists (string name) { - foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { - if (node_folder ["name"].InnerText.Equals (name)) - return true; - } - - return false; + XmlNode folder = this.GetFolder(name); + return folder != null; } - public string GetBackendForFolder (string name) { - foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { - if (node_folder ["name"].InnerText.Equals (name)) - return node_folder ["backend"].InnerText; - } - - return null; + return this.GetFolderValue(name, "backend"); } - public string GetUrlForFolder (string name) { - foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { - if (node_folder ["name"].InnerText.Equals (name)) - return node_folder ["url"].InnerText; - } - - return null; + return this.GetFolderValue(name, "url"); } - public string GetAnnouncementsForFolder (string name) { - foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { - if (node_folder ["name"].InnerText.Equals (name) && - node_folder ["announcements"] != null) { - - return node_folder ["announcements"].InnerText; - } - } - - return null; + return this.GetFolderValue(name, "announcements"); } + public string GetNotificationUrlForFolder (string name) + { + // examples? + // tcp://localhost:9999/ + // xmpp:someuser@somexmppserver?canhavefunnybits + // irc://hbons/#somechatroom + return this.GetFolderValue(name, "notificationurl"); + } public string GetConfigOption (string name) {