Пример #1
0
 public Team(string displayName, string kategorie)
 {
     this.DisplayName = displayName;
     Kategorie        = kategorie;
     Owners           = new List <string>()
     {
     };
     Members = new List <string>()
     {
     };
     Unterrichts = new Unterrichts();
     Typ         = "Verteilergruppe";
 }
Пример #2
0
        /// <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("");
        }
Пример #3
0
        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
            {
            }
        }