public IHttpContext ResponseIn(IHttpContext context)
        {
            string payload = context.Request.Payload;
            Dictionary <string, string> args = MelBoxWeb.ReadPayload(payload);

            ReadGlobalFields(args);

            Dictionary <string, string> action = new Dictionary <string, string>();

            if (isAdmin)
            {
                action.Add("/blocked/create", "Ausgewählte Nachricht sperren");
            }

            DataTable     dt      = Program.Sql.GetViewMsgRec();
            StringBuilder builder = new StringBuilder();

            builder.Append(MelBoxWeb.HtmlTablePlain(dt, isAdmin));
            builder.Append(MelBoxWeb.HtmlEditor(action));
#if DEBUG
            builder.Append("<p class='w3-pink'>" + payload + "</p>");
#endif
            context.Response.SendResponse(MelBoxWeb.HtmlCanvas(builder.ToString(), dt.TableName, logedInUserName));
            return(context);
        }
        public IHttpContext ResponseOut(IHttpContext context)
        {
            string payload = context.Request.Payload;
            Dictionary <string, string> args = MelBoxWeb.ReadPayload(payload);

            ReadGlobalFields(args);

            DataTable     dt      = Program.Sql.GetViewMsgSent();
            StringBuilder builder = new StringBuilder();

            builder.Append(MelBoxWeb.HtmlTablePlain(dt, false));

            string info = "<i class='w3-xxlarge w3-disabled material-icons-outlined'>storage</i> Nur Datenbank<br>" +
                          "<i class='w3-xxlarge w3-disabled material-icons-outlined'>not_started</i> bereit zum Versenden<br>" +
                          "<i class='w3-xxlarge w3-disabled material-icons-outlined'>radar</i> Warte auf Empfangsbestätigung<br>" +
                          "<i class='w3-xxlarge w3-disabled material-icons-outlined'>replay</i> wird nochmal gesendet<br>" +
                          "<i class='w3-xxlarge w3-disabled material-icons-outlined'>unpublished</i> Nachverfolgung abgebrochen<br>" +
                          "<i class='w3-xxlarge w3-disabled material-icons-outlined'>check_circle</i> Empfangsbestätigung erhalten<br>";

            builder.Append(MelBoxWeb.HtmlInfoSidebar("Sendestatus", info));
#if DEBUG
            builder.Append("<p class='w3-pink'>" + payload + "</p>");
#endif
            context.Response.SendResponse(MelBoxWeb.HtmlCanvas(builder.ToString(), dt.TableName, logedInUserName));
            return(context);
        }
        public IHttpContext ResponseOverdue(IHttpContext context)
        {
            string payload = context.Request.Payload;
            Dictionary <string, string> args = MelBoxWeb.ReadPayload(payload);

            ReadGlobalFields(args);

            DataTable     dt      = Program.Sql.GetViewMsgOverdue();
            StringBuilder builder = new StringBuilder();

            if (dt.Rows.Count == 0)
            {
                builder.Append(MelBoxWeb.HtmlAlert(3, "Keine Zeitüberschreitungen festgestellt", "Zur Zeit ist kein überwachter Sender in Verzug."));

                dt = Program.Sql.GetMonitoredContactList();
                builder.Append(MelBoxWeb.HtmlTablePlain(dt, false));
            }
            else
            {
                builder.Append(MelBoxWeb.HtmlTablePlain(dt, false));
            }

            const string info = "Den einzelnen Benutzern kann ein Wert 'Max_Inaktiv' [in Stunden] zugewiesen werden. " +
                                "Kommt von diesen Benutzern innherhalb der eingestellten Zeit keine Meldung, sollte der Meldeweg (SMS, Email) geprüft werden.";

            builder.Append(MelBoxWeb.HtmlInfoSidebar("Überwachte Meldungen", info));
#if DEBUG
            builder.Append("<p class='w3-pink'>" + payload + "</p>");
#endif
            context.Response.SendResponse(MelBoxWeb.HtmlCanvas(builder.ToString(), dt.TableName, logedInUserName));
            return(context);
        }
        public IHttpContext ResponseLog(IHttpContext context)
        {
            string payload = context.Request.Payload;
            Dictionary <string, string> args = MelBoxWeb.ReadPayload(payload);

            ReadGlobalFields(args);

            DateTime von = DateTime.UtcNow.AddDays(-2);
            DateTime bis = DateTime.UtcNow;

            string vonStr = MelBoxWeb.GetArgStr(args, "von");
            string bisStr = MelBoxWeb.GetArgStr(args, "bis");

            if (vonStr.Length > 9)
            {
                DateTime.TryParse(vonStr, out von);
            }

            if (bisStr.Length > 9)
            {
                DateTime.TryParse(bisStr, out bis);
            }

            DataTable dt = Program.Sql.GetViewLog(von, bis.AddDays(1));

            StringBuilder builder = new StringBuilder();


            builder.Append(MelBoxWeb.HtmlFormLog(von, bis));
            builder.Append(MelBoxWeb.HtmlTablePlain(dt, false));

#if DEBUG
            builder.Append("<p class='w3-pink'>" + payload + "</p>");
#endif
            context.Response.SendResponse(MelBoxWeb.HtmlCanvas(builder.ToString(), dt.TableName, logedInUserName));
            return(context);
        }
        public IHttpContext ResponseGsm(IHttpContext context)
        {
            string payload = context.Request.Payload;
            Dictionary <string, string> args = MelBoxWeb.ReadPayload(payload);

            ReadGlobalFields(args);

            StringBuilder builder = new StringBuilder();

            #region Tabelle füllen
            DataTable dt = new DataTable();
            dt.Columns.Add("Parameter", typeof(string));
            dt.Columns.Add("Wert", typeof(string));

            string para  = "Status GSM-Modem";
            string value = GlobalProperty.ConnectedToModem ? "angeschlossen" : "keine Verbindung";
            dt.Rows.Add(para, value);

            //para = "Hersteller"; //Modem-Antort ohne +CNMI
            //value = GlobalProperty.ModemManufacturer;
            //dt.Rows.Add(para, value);

            para  = "SIM-Schubfach erkannt";
            value = GlobalProperty.SimHolderDetected ? "erkannt" : "nicht erkannt";
            dt.Rows.Add(para, value);

            para  = "Eigene Telefonnummer";
            value = "+" + GlobalProperty.OwnPhone;
            dt.Rows.Add(para, value);

            para  = "Registrierung Mobilfunknetz";
            value = GlobalProperty.NetworkRegistrationStatus;
            dt.Rows.Add(para, value);

            para  = "Mobilfunkanbieter";
            value = GlobalProperty.NetworkProviderName;
            dt.Rows.Add(para, value);

            para  = "SMS Service Center";
            value = GlobalProperty.NetworkServiceCenterNumber;
            dt.Rows.Add(para, value);

            para  = "Mobilfunknetz Empfangsqualität";
            value = string.Format("{0:0}%", GlobalProperty.GsmSignalQuality);
            dt.Rows.Add(para, value);

            para  = "Fehlende Empfangsbestätigungen";
            value = string.Format("{0}", GlobalProperty.SmsPendingReports);
            dt.Rows.Add(para, value);

            para  = "SMS-Text für Meldeweg Test";
            value = GlobalProperty.SmsRouteTestTrigger;
            dt.Rows.Add(para, value);

            para  = "Zuletzt gesendete SMS";
            value = GlobalProperty.LastSmsSend;
            dt.Rows.Add(para, value);
            #endregion

            builder.Append(MelBoxWeb.HtmlTablePlain(dt, false));
#if DEBUG
            builder.Append("<p class='w3-pink'>" + payload + "</p>");
#endif
            context.Response.SendResponse(MelBoxWeb.HtmlCanvas(builder.ToString(), "Status Modem", logedInUserName));
            return(context);
        }