Exemplo n.º 1
0
        public Teams(Teams klassenTeams, string name, Lehrers lehrers)
        {
            Teams klassenTeamsTemp = new Teams();

            foreach (var klas in klassenTeams)
            {
                var jahr = klas.DisplayName.Substring(klas.DisplayName.Length - 3, 2);

                var t = new Team
                {
                    DisplayName          = klas.DisplayName + "-LuL",
                    BildungsgangLanganme = klas.BildungsgangLanganme,
                    BildungsgangGekürzt  = klas.BildungsgangGekürzt,
                    Members   = klas.Members,
                    Owners    = klas.Owners,
                    Kategorie = klas.Kategorie,
                    Typ       = klas.Typ,
                    TeamId    = klas.TeamId
                };
                klassenTeamsTemp.Add(t);
            }

            if (name.StartsWith("Klassenteams") && name.EndsWith("-LuL"))
            {
                foreach (var klassenTeam in klassenTeamsTemp)
                {
                    klassenTeam.IstWordTeam = true;
                    klassenTeam.Members     = (from m in klassenTeam.Members where !m.Contains("student") select m).ToList();
                    klassenTeam.Owners      = new List <string>(); // Distribution Groups haben nur member
                }

                this.AddRange(klassenTeamsTemp);
            }

            if (name.StartsWith("Klassenteams") && name.EndsWith("-SuS"))
            {
                foreach (var klassenTeam in klassenTeamsTemp)
                {
                    klassenTeam.DisplayName += "-SuS";
                    klassenTeam.Members      = (from m in klassenTeam.Members where m.Contains("student") select m).ToList();
                    klassenTeam.Owners       = (from m in klassenTeam.Owners where m.Contains("student") select m).ToList();
                }

                this.AddRange(klassenTeamsTemp);
            }

            if (name == "Bildungsgaenge-LuL")
            {
                List <string> bildungsgänge = new List <string>();

                foreach (var klassenTeam in klassenTeamsTemp)
                {
                    // Die erste Ziffer und alles danach wird abgeschnitten

                    var bildungsgang = klassenTeam.DisplayName.Substring(0, klassenTeam.DisplayName.IndexOfAny("0123456789".ToCharArray()));

                    if (!bildungsgänge.Contains(bildungsgang))
                    {
                        bildungsgänge.Add(bildungsgang);

                        Team bgSoll = new Team(bildungsgang + "-LuL", "Bildungsgänge");

                        bgSoll.IstWordTeam = true;

                        // BG-Gruppen sind immer Verteilergruppen

                        bgSoll.IstVerteilergruppe   = true;
                        bgSoll.BildungsgangLanganme = klassenTeam.BildungsgangLanganme;
                        bgSoll.BildungsgangKurzname = bildungsgang;
                        bgSoll.Bildungsgangleitung  = (from l in lehrers from a in l.Anrechnungen where a.TextGekürzt == klassenTeam.BildungsgangGekürzt select l.Mail).FirstOrDefault();

                        if (bgSoll.Bildungsgangleitung == null)
                        {
                            Console.WriteLine("Keine Bildungsgangleitung in " + bgSoll.DisplayName + ". Vermutlich stimmt die Bezeichnung in den Anrechnungen in Untis nicht mit der Eigenschaft in den Stammdaten in Untis überein.");
                            Console.ReadKey();
                        }


                        foreach (var kT in klassenTeamsTemp)
                        {
                            if (kT.DisplayName.Substring(0, klassenTeam.DisplayName.IndexOfAny("0123456789".ToCharArray())) == bildungsgang)
                            {
                                foreach (var klassenTeamMember in (from k in kT.Members where !k.Contains("students") select k).ToList())
                                {
                                    if (!bgSoll.Members.Contains(klassenTeamMember) && klassenTeamMember != null && klassenTeamMember != "")
                                    {
                                        bgSoll.Members.Add(klassenTeamMember);
                                    }
                                }
                            }
                        }

                        if (bgSoll.Members.Count > 0)
                        {
                            this.Add(bgSoll);
                        }
                    }
                }
            }
        }