static void Main(string[] args) { try { Global.Initialize(); Periodes periodes = new Periodes(); var periode = (from p in periodes where p.Bis >= DateTime.Now.Date where DateTime.Now.Date >= p.Von select p.IdUntis).FirstOrDefault(); Lehrers lehrers = new Lehrers(periode); Klasses klasses = new Klasses(periode, lehrers); Schuelers schuelers = new Schuelers(klasses); Fachs fachs = new Fachs(); Raums raums = new Raums(periode); Unterrichtsgruppes unterrichtsgruppes = new Unterrichtsgruppes(); Unterrichts unterrichts = new Unterrichts(periode, klasses, lehrers, fachs, raums, unterrichtsgruppes); Anrechnungs anrechnungen = new Anrechnungs(periode); Teams klassenMitAllenSoll = new Teams(klasses, lehrers, schuelers, unterrichts); Global.TeamsSoll.Hinzufügen(anrechnungen, lehrers, klassenMitAllenSoll); // Alle Lehrkräfte und Schüler im Team //Teams klassenMitSchülernSoll = new Teams(klassenMitAllenSoll, "Klassenteams-SuS", lehrers); Global.TeamsSoll.Hinzufügen(new Teams(klassenMitAllenSoll, "Klassenteams-LuL", lehrers)); Global.TeamsSoll.Hinzufügen(new Teams(klassenMitAllenSoll, "Bildungsgaenge-LuL", lehrers)); Global.TeamsSoll.Hinzufügen(new Team("Kollegium", lehrers, lehrers.Kollegium())); Global.TeamsSoll.Hinzufügen(new Team("Abitur", lehrers, unterrichts.Abitur(lehrers))); Global.TeamsSoll.Hinzufügen(new Team("FHR", lehrers, unterrichts.Fhr(lehrers))); Global.TeamsSoll.Hinzufügen(new Team("SV")); Global.TeamsSoll.Hinzufügen(new Team("Lehrerinnen", lehrers, lehrers.Lehrerinnen())); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Religionslehre", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "KR", "KR FU", "KR1", "KR2", "KR G1", "KR G2", "ER", "ER G1" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Wirtschaftslehre in nicht kaufm Klassen", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "WL", "WBL" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Deutsch/ Kommunikation", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "D", "D FU", "D1", "D2", "D G1", "D G2", "D L1", "D L2", "D L", "DL", "DL1", "DL2" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Mathematik/ Physik", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "M", "M FU", "M1", "M2", "M G1", "M G2", "M L1", "M L2", "M L", "ML", "ML1", "ML2" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Politik/ Gesellschaftslehre", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "PK", "PK FU", "PK1", "PK2", "GG G1", "GG G2" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Sport", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "SP", "GG" }))); //Global.TeamsSoll.Hinzufügen(new Team("Fachschaft Englisch", lehrers, klassenMitAllenSoll.Fachschaft(lehrers, new List<string>() { "E", "E FU", "E1", "E2", "E G1", "E G2", "E L1", "E L2", "E L", "EL", "EL1", "EL2" }))); Global.TeamsSoll.Hinzufügen(new Team("Bildungsgangleitungen A", lehrers, lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen A"))); Global.TeamsSoll.Hinzufügen(new Team("Bildungsgangleitungen B", lehrers, lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen B"))); Global.TeamsSoll.Hinzufügen(new Team("Bildungsgangleitungen C", lehrers, lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen C"))); Global.TeamsSoll.Hinzufügen(new Team("Bildungsgangleitungen D", lehrers, lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen D"))); var members = new List <string>(); members.AddRange(lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen A")); members.AddRange(lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen B")); members.AddRange(lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen C")); members.AddRange(lehrers.GetAnrechungenAusBeschreibung("Bildungsgangleitungen D")); Global.TeamsSoll.Hinzufügen(new Team("Bildungsgangleitungen", lehrers, members)); Global.TeamsSoll.Hinzufügen(new Team("Klassenleitungen", lehrers, klasses.Klassenleitungen())); //Global.TeamsSoll.CsvString = "\"GroupDisplayName\"|\"PrimarySmtpAddress\"|\"User\"|\"Type\"\r\n"; //Global.TeamsSoll.Hinzufügen(new Team("aaa10", new List<string>() { "*****@*****.**", "*****@*****.**" })); // Erstelle CSV File.WriteAllText(Global.GruppenMemberCsvSoll, Global.TeamsSoll.CsvString, Encoding.UTF8); Process myProcess = new Process(); Process.Start("notepad++.exe", System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + @"\\GruppenOwnerMembersSoll.csv"); // Interop string dateiWord = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + @"\\Gruppen-und-Mitglieder.docx"; string dateiPdf = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + @"\\Gruppen-und-Mitglieder.pdf"; if (File.Exists(dateiWord)) { File.Delete(dateiWord); } File.Copy(@"U:\Source\Repos\teams\teams\Gruppen und Mitglieder.docx", dateiWord); var wordApp = new Application { Visible = true }; var aDoc = wordApp.Documents.Open(dateiWord, ReadOnly: false, Visible: true); aDoc.Activate(); FindAndReplace(wordApp, "{stand}", DateTime.Now.ToShortDateString()); foreach (var teamSoll in Global.TeamsSoll) { if (teamSoll.DisplayName.StartsWith("FHR")) { string a = ""; } // Die Schulleiterin wird zuerst genannt. Alle anderen Gruppen bleiben alphabetisch sortiert. if (teamSoll.DisplayName == "Schulleitung" || teamSoll.Members.Count == 1) { foreach (var member in teamSoll.Members) { FindAndReplace(wordApp, "{" + teamSoll.DisplayName + "}", "{" + teamSoll.DisplayName + "}" + member + ";\r\n"); } } else { for (int i = 0; i < teamSoll.Members.Count; i++) { string aaa = "\t" + teamSoll.Members[i] + ";"; if (i < teamSoll.Members.Count - 1) { aaa = aaa + "\t" + teamSoll.Members[i + 1] + ";"; } aaa = aaa + "\r\n {" + teamSoll.DisplayName + "}"; FindAndReplace(wordApp, "{" + teamSoll.DisplayName + "}", aaa); i++; } } FindAndReplace(wordApp, "{" + teamSoll.DisplayName + "}", ""); FindAndReplace(wordApp, "{" + teamSoll.DisplayName.Replace("-LuL", "") + "-Bildungsgang" + "}", teamSoll.BildungsgangLanganme); FindAndReplace(wordApp, "{" + teamSoll.DisplayName.Replace("-LuL", "") + "-Bildungsgangleitung" + "}", teamSoll.Bildungsgangleitung); FindAndReplace(wordApp, "{" + teamSoll.DisplayName.Replace("-LuL", "") + "-Vorsitz" + "}", teamSoll.Vorsitz); } // Klassenstrings foreach (var klassenteam in klassenMitAllenSoll) { FindAndReplace(wordApp, "{Klassenteams}", "\t" + klassenteam.DisplayName + "*****@*****.**" + "\t(" + klassenteam.Klassenleitung + ")\r\n{Klassenteams}"); } FindAndReplace(wordApp, "{Klassenteams}", ""); aDoc.Save(); Console.WriteLine("--------------------"); Console.WriteLine("Nächste Schritte:"); Console.WriteLine("1. Inhaltsverzeichnis der Worddatei neu laden. Word schließen"); Console.WriteLine("2. Die Worddatei mit Libreoffice laden und dann exportieren werden, damit der PDF-Viewer das Inhaltsverzeichnis anzeigt."); Console.WriteLine("Ende der Verarbeitung"); Console.ReadKey(); Environment.Exit(0); } catch (Exception ex) { Console.WriteLine(ex); Console.ReadKey(); } finally { } }
internal void Hinzufügen(Anrechnungs anrechnungen, Lehrers lehrers, Teams klassenMitAllenSoll) { foreach (var anrechnung in (from a in anrechnungen where a.Beschr != null where a.Beschr != "" where new List <string>() { "Verteilergruppe", "Team" }.Contains(a.Beschr) select a).ToList()) { Team team = new Team(anrechnung.TextGekürzt); team.Typ = anrechnung.Beschr; foreach (var aa in (from ax in anrechnungen where ax.TextGekürzt == anrechnung.TextGekürzt select ax).ToList()) { var leMail = (from l in lehrers where l.IdUntis == aa.TeacherIdUntis select l.Mail).FirstOrDefault(); if (!(from t in team.Members where t == leMail select t).Any()) { if (anrechnung.TextGekürzt.StartsWith("Fachschaft")) { team.Vorsitz = leMail; if (anrechnung.TextGekürzt.Contains("nglisch")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "E", "E FU", "E1", "E2", "E G1", "E G2", "E L1", "E L2", "E L", "EL", "EL1", "EL2" })); } if (anrechnung.TextGekürzt.Contains("eligion")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "KR", "KR FU", "KR1", "KR2", "KR G1", "KR G2", "ER", "ER G1" })); } if (anrechnung.TextGekürzt.Contains("irtschaftslehre")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "WL", "WBL" })); } if (anrechnung.TextGekürzt.Contains("eutsch")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "D", "D FU", "D1", "D2", "D G1", "D G2", "D L1", "D L2", "D L", "DL", "DL1", "DL2" })); } if (anrechnung.TextGekürzt.Contains("athematik")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "M", "M FU", "M1", "M2", "M G1", "M G2", "M L1", "M L2", "M L", "ML", "ML1", "ML2" })); } if (anrechnung.TextGekürzt.Contains("olitik")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "PK", "PK FU", "PK1", "PK2", "GG G1", "GG G2" })); } if (anrechnung.TextGekürzt.Contains("port")) { team.Members.AddRange(klassenMitAllenSoll.Fachschaft(lehrers, new List <string>() { "SP" })); } } else { team.Members.Add(leMail); } } } if (!(from t in this where t.DisplayName == team.DisplayName select t).Any()) { Hinzufügen(team); } } }
public Lehrers(int periode) { Anrechnungs anrechnungen = new Anrechnungs(periode); using (SqlConnection odbcConnection = new SqlConnection(Global.ConnectionStringUntis)) { try { string queryString = @"SELECT DISTINCT Teacher.Teacher_ID, Teacher.Name, Teacher.Longname, Teacher.FirstName, Teacher.Email, Teacher.PlannedWeek, Teacher.Flags FROM Teacher WHERE (((SCHOOLYEAR_ID)= " + Global.AktSj[0] + Global.AktSj[1] + ") AND ((TERM_ID)=" + periode + ") AND ((Teacher.SCHOOL_ID)=177659) AND (((Teacher.Deleted)='false'))) ORDER BY Teacher.Name;"; SqlCommand odbcCommand = new SqlCommand(queryString, odbcConnection); odbcConnection.Open(); SqlDataReader sqlDataReader = odbcCommand.ExecuteReader(); while (sqlDataReader.Read()) { Lehrer lehrer = new Lehrer() { IdUntis = sqlDataReader.GetInt32(0), Kürzel = Global.SafeGetString(sqlDataReader, 1), Nachname = Global.SafeGetString(sqlDataReader, 2), Vorname = Global.SafeGetString(sqlDataReader, 3), Mail = Global.SafeGetString(sqlDataReader, 4), Deputat = Convert.ToDouble(sqlDataReader.GetInt32(5)) / 1000, Geschlecht = Global.SafeGetString(sqlDataReader, 6).Contains("W") ? "w" : "m", Anrechnungen = (from a in anrechnungen where a.TeacherIdUntis == sqlDataReader.GetInt32(0) select a).ToList() }; lehrer.Mail = lehrer.Mail.Contains("ertrud") ? lehrer.Mail.Replace("ertrud", "erti") : lehrer.Mail; if (lehrer.Vorname == "Annett") { string aa = ""; } if (lehrer.Mail != "") { if (!lehrer.Mail.ToUpper().StartsWith(lehrer.Vorname.Substring(0, 1)) || !lehrer.Mail.ToUpper().Contains("." + lehrer.Nachname.ToUpper().Substring(0, 1))) { throw new Exception("Die Mail des Lehrers " + lehrer.Kürzel + " lautet " + lehrer.Mail + ". Das kann nicht richtig sein."); } this.Add(lehrer); } } ; Global.WriteLine("Lehrer", this.Count); sqlDataReader.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw new Exception(ex.ToString()); } finally { odbcConnection.Close(); } } }