LocalSettings.cs

00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using Microsoft.Win32;
00005 using System.Xml;
00006 using System.IO;
00007 using System.Reflection;
00008 
00009 namespace Client
00010 {
00017     public class LocalSettings
00018     {
00020         private string username = "";
00022         private string password = "";
00024         private bool rememberme = false;
00026         private string server = "localhost";
00028         private int port = 8080;
00029 
00031         private XmlWriterSettings writerSettings;
00033         private string settingsFile;
00034 
00038         public LocalSettings()
00039         {
00040             writerSettings = new XmlWriterSettings();
00041             writerSettings.Indent = true;
00042             writerSettings.IndentChars = ("    ");
00043             settingsFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + "settings.xml";
00044 
00045             Dictionary<string, string> theSettings = new Dictionary<string,string>();
00046 
00047             if (File.Exists(settingsFile))
00048             {
00049                 using (System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(settingsFile))
00050                 {
00051                     string settingName, settingValue;
00052                     while (reader.Read())
00053                     {
00054                         reader.MoveToContent();
00055 
00056                         if (reader.NodeType == System.Xml.XmlNodeType.Element && reader.Name == "Setting")
00057                         {
00058                             settingName = reader.GetAttribute("Name");
00059                             settingValue = reader.ReadString();
00060                             theSettings[settingName] = settingValue;
00061                         }
00062                     }
00063                 }
00064 
00065                 // TODO: Add all settings and their default values here
00066                 username = theSettings.ContainsKey("Username") ? theSettings["Username"] : "";
00067                 password = theSettings.ContainsKey("Password") ? theSettings["Password"] : "";
00068                 rememberme = theSettings.ContainsKey("Rememberme") ? Convert.ToBoolean(theSettings["Rememberme"]) : false;
00069                 server = theSettings.ContainsKey("Server") ? theSettings["Server"] : "localhost";
00070                 port = theSettings.ContainsKey("Port") ? Convert.ToInt32(theSettings["Port"]) : 8080;
00071             }
00072         }
00073 
00075         public string Username
00076         {
00077             get { return username; }
00078             set { username = value; this.SaveSettings(); }
00079         }
00080 
00082         public string Password
00083         {
00084             get { return password; }
00085             set { password = value; this.SaveSettings(); }
00086         }
00087 
00089         public bool RememberMe
00090         {
00091             get { return rememberme; }
00092             set { rememberme = value; this.SaveSettings(); }
00093         }
00094 
00096         public string Server
00097         {
00098             get { return server; }
00099             set { server = value; this.SaveSettings(); }
00100         }
00101 
00103         public int Port
00104         {
00105             get { return port; }
00106             set { port = value; this.SaveSettings(); }
00107         }
00108 
00114         internal void SaveSettings()
00115         {
00116             Dictionary<string, string> theSettings = new Dictionary<string,string>();
00117             theSettings["Username"] = username;
00118             theSettings["Password"] = password;
00119             theSettings["Rememberme"] = Convert.ToString(rememberme);
00120             theSettings["Server"] = server;
00121             theSettings["Port"] = Convert.ToString(port);
00122 
00123             using (XmlWriter writer = XmlWriter.Create(settingsFile, writerSettings))
00124             {
00125                 writer.WriteStartElement("Settings");
00126                 foreach (KeyValuePair<string, string> theSetting in theSettings)
00127                 {
00128                     writer.WriteStartElement("Setting");
00129                         writer.WriteStartAttribute("Name");
00130                         writer.WriteValue(theSetting.Key);
00131                         writer.WriteEndAttribute();
00132                         writer.WriteString(theSetting.Value.ToString());
00133                     writer.WriteEndElement();
00134                 }
00135                 writer.WriteEndElement();
00136                 writer.Flush();
00137             }
00138 
00139         }
00140     }
00141 }

Generated on Thu Dec 21 06:21:55 2006 for SCRAML by  doxygen 1.5.1-p1