//Case Methoden private static void SendChatNachricht(ClientData client, Packet p) { DatenbankArgs args = client.db_Manager.Kurse.sendChat( client.autor, //(string)p.Data["C_Sendername"], (string)p.Data["C_Inhalt"], (int)p.Data["K_ID"]); if (!args.Success) { ClientHandler.Ausgabe("sendChat", "null"); } else { Console.WriteLine(client.autor + ": " + (string)p.Data["C_Inhalt"]); //An alle eingelogten Clients senden //UpdateAll(); } Packet response = new Packet(PacketType.SendChatNachricht, null, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); //neue Nachricht wurde empfangen -> an alle Clients weiterleiten Thread.Sleep(50); //update Packet args = client.db_Manager.Kurse.getChat(); if (!args.Success) { ClientHandler.Ausgabe("sendChat", "SendChatUpdate"); } else { Packet updateChat = new Packet(PacketType.UpdateChat, args.Data, "server"); ClientHandler.SendPacketToAllLoggedInClients(updateChat); } }
//----------------------- //Start Server static void Main(string[] args) { //Server starten ClientHandler.StartServer(ip, port); //Server starten //config ClientHandler.Ausgabe("Config", "IP: " + ip); ClientHandler.Ausgabe("Config", "PORT: " + port); //alte datensätze löschen DbAdapter.Klasse.deleteOld(); ClientHandler.Ausgabe("DB", "delete old Data. \n"); }
private static void GetSchülerInKurs(ClientData client, Packet p) { DatenbankArgs args = client.db_Manager.Kurse.getSchüler((int)p.Data["K_ID"]); if (args.Success == false) { ClientHandler.Ausgabe("getSchülerInKurs", "null"); } Packet response = new Packet(PacketType.GetSchülerInKurs, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void GetEreignisse(ClientData client) { DatenbankArgs args = client.db_Manager.Kurse.getEreignisse(); if (!args.Success) { ClientHandler.Ausgabe("GetEreignisse", "null"); } Packet response = new Packet(PacketType.GetEreignisse, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void GetLehrer(ClientData client) { DatenbankArgs args = client.db_Manager.Lehrer.getAll(); if (!args.Success) { ClientHandler.Ausgabe("GetLehrer", args.Error); } Packet response = new Packet(PacketType.GetLehrer, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void DeleteEreignis(ClientData client, Packet p) { DatenbankArgs args = client.db_Manager.Kurse.deleteEreignis((int)p.Data["E_ID"]); if (!args.Success) { ClientHandler.Ausgabe("EditEreigniss", args.Error); } Packet response = new Packet(PacketType.DeleteEreignis, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void GetLehrerofKurs(ClientData client, Packet packet) { DatenbankArgs args = client.db_Manager.Kurse.getLehrer((int)packet.Data["K_ID"]); if (!args.Success) { ClientHandler.Ausgabe("GetLehrerofKurs", args.Error); } Packet response = new Packet(PacketType.GetLehrerofKurs, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void GetChat(ClientData client) { DatenbankArgs args = client.db_Manager.Kurse.getChat(); if (!args.Success) { ClientHandler.Ausgabe("getChat", "null"); } Console.WriteLine(client.email); Packet response = new Packet(PacketType.GetChat, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void GetSchülerInKlasse(ClientData client, Packet packet) { DatenbankArgs args = client.db_Manager.Klasse.getSchüler( Convert.ToInt32(packet.Data["Kl_ID"]) ); if (!args.Success) { ClientHandler.Ausgabe("GetSchülerInKlasse", "null"); } Packet response = new Packet(PacketType.GetSchülerInKlasse, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
static Packet Klassenwahl(ClientData client) { try { //idAbfragen //kurse abfragen DatenbankArgs args = client.db_Manager.Schüler.getKlassenNamen(); if (args.Success == false) { ClientHandler.Ausgabe("Klassenwahl", "null"); } return(new Packet(PacketType.Klassenwahl, args.Data, args.Success, args.Error)); } catch (Exception exc) { throw new Exception(">>Klassenwahl: " + exc); } }
private static void SendEreigniss(ClientData client, Packet p) { DatenbankArgs args = client.db_Manager.Kurse.sendEreigniss( (int)p.Data["K_ID"], (string)p.Data["E_Art"], (DateTime)p.Data["E_Fälligkeitsdatum"], client.autor, //(string)p.Data["E_Autor"], (string)p.Data["E_Beschreibung"]); if (!args.Success) { ClientHandler.Ausgabe("SendEreigniss", "null"); } else { Console.WriteLine(client.autor + ": " + (string)p.Data["E_Beschreibung"]); } Packet response = new Packet(PacketType.SendEreigniss, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
private static void EditEreigniss(ClientData client, Packet p) { DatenbankArgs args = client.db_Manager.Kurse.editEreignis( (int)p.Data["K_ID"], (string)p.Data["E_Art"], DateTime.Now, (DateTime)p.Data["E_Fälligkeitsdatum"], (int)p.Data["E_ID"], client.autor, (string)p.Data["E_Beschreibung"] ); if (!args.Success) { ClientHandler.Ausgabe("EditEreigniss", args.Error); } Packet response = new Packet(PacketType.EditEreigniss, args.Data, args.Success, args.Error); ClientHandler.SendSinglePacket(client, response); }
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Public Packets static bool PublicPacketHandler(Packet p, ClientData client) { Packet response = null; switch (p.PacketType) { case PacketType.SchülerLogin: //DB----- Try Login ClientHandler.Ausgabe("Auth", "Email: " + p.Data["email"] + " Passwort: " + p.Data["passwort"] + " try to login"); DatenbankArgs args = client.db_Manager.Schüler.login(p.Data["email"].ToString(), p.Data["passwort"].ToString()); if (args.Success) { ClientHandler.ClientLogin(client.id); //In liste schreiben //Console.WriteLine(ClientHandler.checkLoginState(client.id)); //Daten speichern client.email = p.Data["email"].ToString(); //email als Erkennungsmerkmal setzen client.name = (string)args.Data.Rows[0]["S_Name"]; client.vname = (string)args.Data.Rows[0]["S_Vorname"]; client.SetAutorKürzel(); ClientHandler.Ausgabe("Auth", client.vname + "." + client.name + "." + client.email + " (Schüler) eingeloggt"); } else { ClientHandler.Ausgabe("Auth", p.Data["email"] + " Login fehlgeschlagen!"); } response = new Packet(PacketType.SchülerLogin, args.Data, args.Success, args.Error); //------ break; case PacketType.LehrerLogin: //DB----- Try Login ClientHandler.Ausgabe("Auth", "Email: " + p.Data["email"] + " Passwort: " + p.Data["passwort"] + " try to login"); args = client.db_Manager.Lehrer.login(p.Data["email"].ToString(), p.Data["passwort"].ToString()); if (args.Success) { ClientHandler.ClientLogin(client.id); //In liste schreiben client.email = p.Data["email"].ToString(); //email als Erkennungsmerkmal setzen client.name = (string)args.Data.Rows[0]["L_Name"]; client.vname = (string)args.Data.Rows[0]["L_Vorname"]; client.SetAutorKürzel(); client.hasRights = true; ClientHandler.Ausgabe("Auth", client.vname + "." + client.name + "." + client.email + " (Lehrer) eingeloggt"); } else { ClientHandler.Ausgabe("Auth", p.Data["email"] + " Login fehlgeschlagen!"); } response = new Packet(PacketType.LehrerLogin, args.Data, args.Success, args.Error); //------ break; case PacketType.SchülerRegistraition: //Register Schüler args = client.db_Manager.Schüler.add(p.Data["name"].ToString(), p.Data["vname"].ToString(), p.Data["phone"].ToString(), p.Data["email"].ToString(), p.Data["klasse"].ToString(), p.Data["passwort"].ToString()); if (args.Success) { ClientHandler.Ausgabe("Auth", p.Data["email"] + " wurde erfolgreich registriert"); } else { ClientHandler.Ausgabe("Auth", p.Data["email"] + " Registrierung fehlgeschlagen!"); } response = new Packet(PacketType.SchülerRegistraition, args.Data, args.Success, args.Error); break; case PacketType.LehrerRegistraition: //Register Lehrer if ((string)p.Data["lehrerPasswort"] != lehrerPasswort) { args = new DatenbankArgs("Lehrer Passwort falsch.\n Versuchen Sie es erneut."); } else { args = client.db_Manager.Lehrer.add(p.Data["vname"].ToString(), p.Data["name"].ToString(), p.Data["anrede"].ToString(), p.Data["email"].ToString(), p.Data["passwort"].ToString(), p.Data["titel"].ToString()); } if (args.Success) { ClientHandler.Ausgabe("Auth", p.Data["email"] + " wurde erfolgreich registriert"); } else { ClientHandler.Ausgabe("Auth", p.Data["email"] + " Registrierung fehlgeschlagen!"); } response = new Packet(PacketType.LehrerRegistraition, args.Data, args.Success, args.Error); break; case PacketType.Klassenwahl: response = Klassenwahl(client); break; } if (response != null) { ClientHandler.SendSinglePacket(client, response); //ClientHandler.Ausgabe("Auth", "Anfrage wurde bearbeitet"); return(true); } return(false); }
//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); } }