示例#1
0
        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>");
        }
示例#2
0
        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;
        }