Exemple #1
0
        //private Display.ClsKommunikation ddk = new Display.ClsKommunikation();

        protected override void OnMessage(MessageEventArgs e)
        {
            try
            {
                var name = this.Context.QueryString["name"];

                if (e.IsBinary && this.loggedon)
                {
                    byte[] bytearr = e.RawData;
                    File.WriteAllBytes(this.binPfad, bytearr);

                    if (this.binTyp == "Bild")
                    {
                        // Bildliste senden
                        string ret = ClsRequests.DataRequest(new ClsCommand(command: "PictureList"));
                        this.SendAsync(ret, null);
                    }

                    if (this.binTyp == "Font")
                    {
                        // Fontliste senden
                        string ret = ClsRequests.DataRequest(new ClsCommand(command: "FontList"));
                        this.SendAsync(ret, null);
                    }

                    if (this.binTyp == "Audio")
                    {
                        // Audiofileliste senden
                        string ret = ClsRequests.DataRequest(new ClsCommand(command: "AudioFileList"));
                        this.SendAsync(ret, null);
                    }

                    return;
                }

                string x = !name.IsNullOrEmpty() ? String.Format("\"{0}\" to {1}", e.Data, name) : e.Data;

                GlobalServerEvents.Fire_GotMessage(this, new ClsStringEventArgs(x));

                ClsCommand rb = new JavaScriptSerializer().Deserialize <ClsCommand>(e.Data);

                if (rb.Command == "strPic")
                {
                    this.binTyp  = "Bild";
                    this.binPfad = Folder(rb.Value1, @"pictures\" + rb.Value2);
                    return;
                }

                if (rb.Command == "strFont")
                {
                    this.binTyp  = "Font";
                    this.binPfad = Folder(rb.Value1, "fonts");
                    return;
                }

                if (rb.Command == "strSnd")
                {
                    this.binTyp  = "Audio";
                    this.binPfad = Folder(rb.Value1, "sounds");
                    return;
                }

                if (rb.Domain == "AN")
                {
                    if (rb.Command == "allVarValues")
                    {
                        List <ClsTextVariabeln> tvl = ClsDBVariablen.Instance.GetAllTextVariablen();
                        for (int i = 0; i < tvl.Count; i++)
                        {
                            GlobalServerEvents.SendMessage("server", new ClsStringEventArgs(ClsVarCom.UpdateDivContentStr(tvl[i].ID, tvl[i].Wert)));
                        }
                    }
                }

                if (rb.Type == "req")
                {
                    string ret = ClsRequests.DataRequest(rb);
                    //int z = 0;
                    do
                    {
                        //z++;
                        //if (z > 10000)
                        //{
                        //    throw new Exception("Connection not open");
                        //}
                    } while (this.State != WebSocketState.Open);

                    this.SendAsync(ret, null);
                }
                else if (rb.Type == "logon")                 // Anmeldung
                {
                    //string user = Core.DBControler.ClsOptionsControler.Options3("UserName").Value;
                    string pwd = Core.DBControler.ClsOptionsControler.Password("Password");

                    if (pwd == rb.Value1)
                    {
                        this.loggedon = true;
                    }

                    ClsCommand cmd = new ClsCommand();
                    cmd.Domain = "loggedon";
                    cmd.Value1 = this.loggedon.ToString();
                    this.SendAsync(new JavaScriptSerializer().Serialize(cmd), null);
                    return;
                }
                else if (rb.Type == "loggedon")                 // Fragen ob angemeldet
                {
                    ClsCommand cmd = new ClsCommand();
                    cmd.Domain = "loggedon";
                    cmd.Value1 = this.loggedon.ToString();
                    this.SendAsync(new JavaScriptSerializer().Serialize(cmd), null);
                    return;
                }
                else
                {
                    if (!this.loggedon)
                    {
                        ClsCommand cmd = new ClsCommand();
                        cmd.Command = "nologgedon";
                        this.SendAsync(new JavaScriptSerializer().Serialize(cmd), null);
                        return;
                    }

                    ClsCommands.Command(rb);
                }
            }
            catch (Exception)
            {
            }
        }
        private void ZeitAusloeser(object sender, ClsObjectEventArgs e)
        {
            Timerevent TimerEvent = (Timerevent)e.ObjectArgument;

            switch (TimerEvent.Eventtype)
            {
            case 0:
            {
                // Timer stoppen
                this.ClockStop(TimerEvent.TimerNr);
                GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "TimerObjects"))));
                break;
            }

            case 1:
            {
                // anderen Timer starten
                if (TimerEvent.AndereTimerNr > 0)
                {
                    this.ClockStart(TimerEvent.AndereTimerNr);
                    GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "TimerObjects"))));
                }

                break;
            }

            case 2:
            {
                // anderen Timer stoppen
                if (TimerEvent.AndereTimerNr > 0)
                {
                    this.ClockStop(TimerEvent.AndereTimerNr);
                    GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "TimerObjects"))));
                }

                break;
            }

            case 3:
            {
                // Audio abspielen
                ClsSoundplayer.Instance.TPlay(TimerEvent.Soundfile + "|" + 75);
                break;
            }

            case 4:
            {
                // Layer wechsel
                if (!string.IsNullOrEmpty(TimerEvent.Layer))
                {
                    long id = Convert.ToInt64(TimerEvent.Layer);

                    DisplayPageSet ps = (from x in ClsDisplayControler.DisplayPageSets() where x.ID == ClsPageSets.ActivePageSet() select x).FirstOrDefault();

                    // prüfen ob ID tatsächlich noch existiert
                    long p = (from x in ClsDisplayControler.DisplayPagesForPageSet(ps.ID) where x.ID == id select x.ID).FirstOrDefault();

                    if (p != 0)
                    {
                        ClsDisplay.SetPage(ClsPageSets.ActivePageSet(), (int)p);

                        GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "ActivePage"))));

                        GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "DivsActivePage", pageSet: ps.PageSetName, page: p.ToString()))));
                    }
                }

                break;
            }
            }
        }