예제 #1
0
        //Data Manager
        //gillt für alle verbundenen Clients
        public static void DataManager(Packet p)
        {
            try
            {
                //warten bis Packet verarbeitet wird --> Socket bereit
                Thread.Sleep(100);
                //----------------

                ClientData client = ClientHandler.GetClientByID(p.SenderId);
                if (client == null)
                {
                    return;
                }
                //Anmeldunsfreie Packete+++++++++++++++++++++++++++++++++++++++++++++++
                if (PublicPacketHandler(p, client))
                {
                    return; //packet ist bereits bearbeitet
                }

                //Anmeldungspflicht+++++++++++++++++++++++++++++++++++++++++++++++++++++
                //Console.WriteLine(client.id);
                //Console.WriteLine(ClientHandler.checkLoginState(client.id));
                if (!ClientHandler.checkLoginState(client.id))
                {
                    ClientHandler.Send_Error_Message_to_Client(client, "Bitte Anmeldung durchführen!");
                    return;
                }

                //Angemeldet: (gesicherter Bereich)
                //Console.WriteLine("received " + p.PacketType);
                switch (p.PacketType)
                {
                case PacketType.Default:
                    //zum Testen
                    Thread.Sleep(500);
                    ClientHandler.Ausgabe("Debug", "packet Default received");
                    ClientHandler.SendSinglePacket(client, p);

                    break;

                case PacketType.GetGewählteKurse:
                    GetKurse(client);
                    break;

                case PacketType.GetAlleKurse:
                    Kurswahl(client);
                    break;

                case PacketType.KursUpdate:
                    UpdateKurse(client, p);
                    break;

                case PacketType.GetSchülerInKurs:
                    GetSchülerInKurs(client, p);
                    break;

                case PacketType.GetSchülerInKlasse:
                    GetSchülerInKlasse(client, p);
                    break;

                case PacketType.GetChat:
                    GetChat(client);
                    break;

                case PacketType.SendChatNachricht:
                    SendChatNachricht(client, p);
                    break;

                case PacketType.GetEreignisse:
                    GetEreignisse(client);
                    break;

                case PacketType.SendEreigniss:
                    SendEreigniss(client, p);
                    break;

                case PacketType.KlasseErstellen:
                    KlasseErstellen(client, p);
                    break;

                case PacketType.GetKlasse:
                    getKlasse(client);
                    break;

                case PacketType.CreateKurs:
                    CreateKurs(client, p);
                    break;

                case PacketType.GetLehrer:
                    GetLehrer(client);
                    break;

                case PacketType.DeleteEreignis:
                    DeleteEreignis(client, p);
                    break;

                case PacketType.EditEreigniss:
                    EditEreigniss(client, p);
                    break;

                case PacketType.GetLehrerofKurs:
                    GetLehrerofKurs(client, p);
                    break;

                default:
                    ClientHandler.Send_Error_Message_to_Client(client, "Unerwartetes Packet!!!");
                    break;
                }
            }
            catch (Exception exc)
            {
                ClientHandler.Ausgabe("PacketManager", exc.Message);
            }
        }