public override void handleGETRequest(HttpProcessor p) { if (p.http_url.Equals("/Test.png")) { Stream fs = File.Open("../../Test.png", FileMode.Open); p.writeSuccess("image/png"); fs.CopyTo(p.outputStream.BaseStream); p.outputStream.BaseStream.Flush(); } // Read local db to show current values on webpage. ConfigData status = MainClass.getDBData(); MainClass.useVoicePrompts = status.useVoicePrompts; MainClass.defTalkgroup = status.defaultTG; MainClass.defTimeout = status.defaultTimeout; MainClass.useCT = status.useCT; MainClass.useLocalCT = status.useLocalCT; useCTChecked = ""; useLocalCTChecked = ""; useVoiceChecked = ""; if (MainClass.useCT) { useCTChecked = "checked"; } if (MainClass.useLocalCT) { useLocalCTChecked = "checked"; } if (MainClass.useVoicePrompts) { useVoiceChecked = "checked"; } // Console.WriteLine("request: {0}", p.http_url); p.writeSuccess(); p.outputStream.WriteLine("<html xmlns = 'http://www.w3.org/1999/xhtml' dir='ltr' lang='en' id='vbulletin_html'>"); p.outputStream.WriteLine("<head>"); p.outputStream.WriteLine("<meta http-equiv='Content-Type' content = 'text/html; charset=ISO-8859-1' />"); p.outputStream.WriteLine("<html><body><h1 style='color:blue;margin-left:30px;'>P25NX Local Config</h1>"); p.outputStream.WriteLine("<form method=post action=/form>"); p.outputStream.WriteLine("Default TalkGroup: <input type=text name=deftg value=" + MainClass.defaultTalkGroup + " >"); p.outputStream.WriteLine("<br>Default TG Timeout: <input type=text name=defto value=" + MainClass.defTimeout.ToString() + ">"); p.outputStream.WriteLine("<br>"); p.outputStream.WriteLine("Use Voice Prompts: <input type=checkbox name=voiceprompts " + useVoiceChecked + " ><BR>"); p.outputStream.WriteLine("Use Remote Courtesy Tone: <input type=checkbox name=ctone " + useCTChecked + " ><BR>"); p.outputStream.WriteLine("Use Local Courtesy Tone: <input type=checkbox name=lctone " + useLocalCTChecked + " ><BR>"); p.outputStream.WriteLine("<br><HR><input type=submit>"); p.outputStream.WriteLine("</form>"); }
public override void handlePOSTRequest(HttpProcessor p, StreamReader inputData) { // Console.WriteLine("POST request: {0}", p.http_url); string thisData = inputData.ReadToEnd(); p.writeSuccess(); p.outputStream.WriteLine("<html><body><h1 style='color:blue;margin-left:30px;'>P25NX Local Config Result</h1>"); p.outputStream.WriteLine("<html><body><h2 style='color:blue;margin-left:30px;'>Config Saved.</h2>"); p.outputStream.WriteLine("<a href=/test>return</a><p>"); // p.outputStream.WriteLine("postbody: <pre>{0}</pre>", thisData); NameValueCollection qscoll = HttpUtility.ParseQueryString(thisData); myData = new ConfigData(); myData.Id = 1; myData.defaultTG = qscoll["deftg"]; myData.defaultTimeout = Int32.Parse(qscoll["defto"]); if (qscoll["voiceprompts"] == "on") { myData.useVoicePrompts = true; } else { myData.useVoicePrompts = false; } if (qscoll["ctone"] == "on") { myData.useCT = true; } else { myData.useCT = false; } if (qscoll["lctone"] == "on") { myData.useLocalCT = true; } else { myData.useLocalCT = false; } using (var db = new LiteDatabase("MyData.db")) { var configs = db.GetCollection <ConfigData>("config"); configs.Update(myData); } //update local variables MainClass.useVoicePrompts = myData.useVoicePrompts; MainClass.defTimeout = myData.defaultTimeout; MainClass.useCT = myData.useCT; MainClass.defaultTalkGroup = Int32.Parse(myData.defaultTG); MainClass.useLocalCT = myData.useLocalCT; }