Esempio n. 1
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
            {
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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();
                }
            }
        }