internal void KurswahlenGymIst(Kurswahlen kurswahlenIst) { foreach (var schueler in this) { schueler.Kurse = new List <Kurswahl>(); schueler.Kurse.AddRange((from k in kurswahlenIst where k.Nachname == schueler.Nachname where k.Vorname == schueler.Vorname where k.Geburtsdatum == schueler.Gebdat //where k.Klasse.StartsWith("G") select k).ToList()); } }
static void Main(string[] args) { List <string> aktSj = new List <string>(); try { Console.WriteLine("Kurswahlen (Version 20200829)"); Console.WriteLine("============================="); Console.WriteLine(""); Console.WriteLine("Das Programm liest die Religionskurswahlen aus Atlantis aus und trägt sie in Untis als Kurswahl ein."); aktSj = new List <string>(); aktSj.Add((DateTime.Now.Month >= 8 ? DateTime.Now.Year : DateTime.Now.Year - 1).ToString()); aktSj.Add((DateTime.Now.Month >= 8 ? DateTime.Now.Year + 1 : DateTime.Now.Year).ToString()); Periodes periodes = new Periodes(aktSj[0] + aktSj[1]); var periode = periodes.Count; Klasses klasses = new Klasses(aktSj[0] + aktSj[1], periode); Schuelers schuelers = new Schuelers(klasses, aktSj[0] + aktSj[1]); Fachs fachs = new Fachs(aktSj[0] + aktSj[1]); Unterrichts unterrichtsImKurssystem = new Unterrichts(schuelers, klasses, fachs, aktSj[0] + aktSj[1], periode); Kurswahlen kurswahlenIst = new Kurswahlen(aktSj[0] + aktSj[1], klasses, fachs, unterrichtsImKurssystem, periode); // Allen Schülern werden Gym-Wahlen zugewiesen //schuelers.KurswahlenGymIst(kurswahlenIst); // Für alle Nicht-Gym-Schüler werden die Religionskurswahlen hinzugefügt schuelers.ReliKurswahlenHinzufügenOderLöschen(unterrichtsImKurssystem, kurswahlenIst, aktSj[0] + aktSj[1], periode); Console.WriteLine(""); Console.WriteLine("ENTER beendet das Programm"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.ReadKey(); } }
internal void ReliKurswahlenHinzufügenOderLöschen(Unterrichts unterrichts, Kurswahlen kurswahlenIst, string aktSJ, int periode) { foreach (var schueler in this) { if (true /*schueler.Anmeldename == "bm153842"*/) { // Für jeden Schüler au0erhalb der Gym ... if (schueler.Klasse != null) { if (!schueler.Klasse.StartsWith("G")) { // ... sofern in seiner Klasse Religionsunterricht angeboten wird ... var reliunterrichtDerKlasseDesSchülers = (from u in unterrichts where u.Klasse.NameUntis == schueler.Klasse where (u.Fach.KürzelUntis.StartsWith("KR ") || u.Fach.KürzelUntis.StartsWith("ER ") || u.Fach.KürzelUntis == "KR" || u.Fach.KürzelUntis == "ER") select u).FirstOrDefault(); if (reliunterrichtDerKlasseDesSchülers != null) { // ... und der Schüler sich nicht abgemeldet oder ab- und später wieder angemeldet hat ... Kurswahl kurswahl = new Kurswahl(); if ((schueler.Reliabmeldung.Year == 1 || schueler.Relianmeldung > schueler.Reliabmeldung)) { // ... wird die Kurswahl hinzugefügt. kurswahl.StudentKurzname = schueler.Anmeldename; kurswahl.Geburtsdatum = schueler.Gebdat; kurswahl.Nachname = schueler.Nachname; kurswahl.Vorname = schueler.Vorname; kurswahl.StudentId = schueler.IdUntis; kurswahl.AlternativeCourses.Add(reliunterrichtDerKlasseDesSchülers.IdUntis.ToString() + "/" + reliunterrichtDerKlasseDesSchülers.Fach.IdUntis + "/1"); kurswahl.Fach = reliunterrichtDerKlasseDesSchülers.Fach.KürzelUntis; kurswahl.Klasse = schueler.Klasse; try { if ((from k in kurswahlenIst where k.StudentId == schueler.IdUntis select k).Count() == 0) { kurswahl.Number = 1; } else { kurswahl.Number = (from k in kurswahlenIst where k.StudentId == schueler.IdUntis select k.Number).Max() + 1; } } catch (Exception ex) { Console.WriteLine(ex); Console.ReadKey(); } if (schueler.Kurse == null) { schueler.Kurse = new List <Kurswahl>(); } schueler.Kurse.Add(kurswahl); // Wenn die Reli-Kurswahl in Untis noch nicht existiert, wird sie ergänzt: if (!(from k in kurswahlenIst where k.Fach == kurswahl.Fach where k.Klasse == kurswahl.Klasse where k.StudentId == kurswahl.StudentId select k).Any()) { kurswahl.AktSj = aktSJ; kurswahl.InsertIntoStudentChoice(periode); } // Wenn die Relikurswahl existert, aber Deleted ist, wird sie wieder aktiviert: if ((from k in kurswahlenIst where k.Fach == kurswahl.Fach where k.Klasse == kurswahl.Klasse where k.StudentId == kurswahl.StudentId where k.Deleted == true select k).Any()) { kurswahl.AktSj = aktSJ; schueler.UpdateStudentChoice(periode); } } // Wenn der Schüler den existierenden Religionskurs abgewählt hat, ... else { // ... und bereits eine Kurswahl besteht ... var kk = (from k in kurswahlenIst where k.Fach == reliunterrichtDerKlasseDesSchülers.Fach.KürzelUntis where k.Klasse == schueler.Klasse where k.StudentId == schueler.IdUntis select k).FirstOrDefault(); if (kk != null) { // ... und die Kurswahl nicht bereits delted wurde ... if (!kk.Deleted) { // ... wird die Kurswahl gelöscht. schueler.DeleteStudentChoice(periode); } } } } } } else { //Console.WriteLine("Der Schüler " + schueler.Nachname + ", " + schueler.Vorname + "(" + schueler.IdAtlantis +"; " + schueler.IdUntis + ") hat keine Klasse."); //Console.ReadKey(); } } } }