public Team(string displayName, string kategorie) { this.DisplayName = displayName; Kategorie = kategorie; Owners = new List <string>() { }; Members = new List <string>() { }; Unterrichts = new Unterrichts(); Typ = "Verteilergruppe"; }
/// <summary> /// KlassenteamsSoll /// </summary> /// <param name="klasses"></param> /// <param name="lehrers"></param> /// <param name="schuelers"></param> /// <param name="unterrichts"></param> public Teams(Klasses klasses, Lehrers lehrers, Schuelers schuelers, Unterrichts unterrichts) { foreach (var klasse in (from k in klasses where (k.Klassenleitungen != null && k.Klassenleitungen.Count > 0 && k.Klassenleitungen[0] != null && k.NameUntis.Any(char.IsDigit)) select k)) { Team klassenteamSoll = new Team(klasse.NameUntis, "Klasse"); klassenteamSoll.BildungsgangLanganme = klasse.BildungsgangLangname; klassenteamSoll.BildungsgangGekürzt = klasse.BildungsgangGekürzt; klassenteamSoll.Klassenleitung = (from k in klasses where k.NameUntis == klassenteamSoll.DisplayName select k.Klassenleitungen[0].Mail).FirstOrDefault(); klassenteamSoll.Unterrichts.AddRange((from u in unterrichts where u.KlasseKürzel == klasse.NameUntis select u).ToList()); var unterrichtendeLehrer = (from l in lehrers where (from u in unterrichts where u.KlasseKürzel == klasse.NameUntis select u.LehrerKürzel).ToList().Contains(l.Kürzel) where l.Mail != null where l.Mail != "" select l.Mail).ToList(); foreach (var unterrichtenderLehrer in unterrichtendeLehrer) { if (!klassenteamSoll.Members.Contains(unterrichtenderLehrer)) { klassenteamSoll.Members.Add(unterrichtenderLehrer); // Owner müssen immer auch member sein. } if (!klassenteamSoll.Owners.Contains(unterrichtenderLehrer)) { klassenteamSoll.Owners.Add(unterrichtenderLehrer); } } var schuelersDerKlasse = (from s in schuelers where s.Klasse == klasse.NameUntis where s.Mail != null where s.Mail != "" select s.Mail).ToList(); foreach (var schuelerDerKlasse in schuelersDerKlasse) { klassenteamSoll.Members.Add(schuelerDerKlasse); } if (klassenteamSoll.Members.Count() + klassenteamSoll.Owners.Count() > 0) { this.Add(klassenteamSoll); } } Global.WriteLine("Klassenteams Soll", this.Count); Console.WriteLine(""); }
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 { } }