Example #1
0
        static void Main(string[] args)
        {
            List <string> aktSj = new List <string>();

            try
            {
                Console.WriteLine("Kurswahlen (Version 20200829)");
                Console.WriteLine("=============================");
                Console.WriteLine("");
                Console.WriteLine("Das Programm liest die Religionskurswahlen aus Atlantis aus und trägt sie in Untis als Kurswahl ein.");

                aktSj = new List <string>();

                aktSj.Add((DateTime.Now.Month >= 8 ? DateTime.Now.Year : DateTime.Now.Year - 1).ToString());
                aktSj.Add((DateTime.Now.Month >= 8 ? DateTime.Now.Year + 1 : DateTime.Now.Year).ToString());

                Periodes periodes = new Periodes(aktSj[0] + aktSj[1]);
                var      periode  = periodes.Count;

                Klasses   klasses   = new Klasses(aktSj[0] + aktSj[1], periode);
                Schuelers schuelers = new Schuelers(klasses, aktSj[0] + aktSj[1]);
                Fachs     fachs     = new Fachs(aktSj[0] + aktSj[1]);

                Unterrichts unterrichtsImKurssystem = new Unterrichts(schuelers, klasses, fachs, aktSj[0] + aktSj[1], periode);

                Kurswahlen kurswahlenIst = new Kurswahlen(aktSj[0] + aktSj[1], klasses, fachs, unterrichtsImKurssystem, periode);

                // Allen Schülern werden Gym-Wahlen zugewiesen

                //schuelers.KurswahlenGymIst(kurswahlenIst);

                // Für alle Nicht-Gym-Schüler werden die Religionskurswahlen hinzugefügt

                schuelers.ReliKurswahlenHinzufügenOderLöschen(unterrichtsImKurssystem, kurswahlenIst, aktSj[0] + aktSj[1], periode);

                Console.WriteLine("");

                Console.WriteLine("ENTER beendet das Programm");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadKey();
            }
        }
Example #2
0
        public Kurswahlen(string aktSj, Klasses klasses, Fachs fachs, Unterrichts unterrichts, int periode)
        {
            using (OleDbConnection oleDbConnection = new OleDbConnection(Global.ConnectionStringUntis))
            {
                try
                {
                    Console.Write("Kurswahlen ".PadRight(75, '.') + " ");

                    string queryString = @"SELECT 
StudentChoice.STUDENT_ID, 
Student.Longname, 
Student.FirstName, 
Student.BirthDate, 
StudentChoice.Number, 
StudentChoice.AlternativeCourses,
Student.Name,
Student.StudNumber,
StudentChoice.Deleted
FROM Student LEFT JOIN StudentChoice ON Student.STUDENT_ID = StudentChoice.STUDENT_ID
WHERE (((StudentChoice.SCHOOLYEAR_ID)= " + aktSj + ") AND ((StudentChoice.TERM_ID)=" + periode + ")) ORDER BY StudentChoice.STUDENT_ID;";

                    OleDbCommand oleDbCommand = new OleDbCommand(queryString, oleDbConnection);
                    oleDbConnection.Open();
                    OleDbDataReader oleDbDataReader = oleDbCommand.ExecuteReader();

                    while (oleDbDataReader.Read())
                    {
                        Kurswahl kurswahl = new Kurswahl(aktSj, periode);

                        kurswahl.StudentId = oleDbDataReader.GetInt32(0);


                        try
                        {
                            kurswahl.Nachname = Global.SafeGetString(oleDbDataReader, 1);
                            if (kurswahl.Nachname == "Dillhage")
                            {
                                string a = "";
                            }
                            kurswahl.Vorname      = Global.SafeGetString(oleDbDataReader, 2);
                            kurswahl.Geburtsdatum = DateTime.ParseExact((oleDbDataReader.GetInt32(3)).ToString(), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
                            kurswahl.Number       = Convert.ToInt32(oleDbDataReader.GetValue(4));
                            kurswahl.AlternativeCourses.Add(Global.SafeGetString(oleDbDataReader, 5));
                            kurswahl.StudentKurzname = Global.SafeGetString(oleDbDataReader, 6);
                            kurswahl.Fach            = (from f in fachs where f.IdUntis.ToString() == kurswahl.AlternativeCourses[0].Split('/')[1] select f.KürzelUntis).FirstOrDefault();

                            kurswahl.Klasse = (from u in unterrichts
                                               where u.IdUntis.ToString() == kurswahl.AlternativeCourses[0].Split('/')[0]
                                               select u.Klasse.NameUntis).FirstOrDefault();
                            kurswahl.AtlantisId = Global.SafeGetString(oleDbDataReader, 7);
                            kurswahl.Deleted    = oleDbDataReader.GetBoolean(8);
                            this.Add(kurswahl);
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Schüler " + kurswahl.Nachname + " " + kurswahl.Vorname + " hat keine Klasse");
                        }
                    }
                    ;
                    oleDbDataReader.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
                finally
                {
                    oleDbConnection.Close();
                    Console.WriteLine(this.Count);
                }
            }
        }
Example #3
0
        internal void ReliKurswahlenHinzufügenOderLöschen(Unterrichts unterrichts, Kurswahlen kurswahlenIst, string aktSJ, int periode)
        {
            foreach (var schueler in this)
            {
                if (true /*schueler.Anmeldename == "bm153842"*/)
                {
                    // Für jeden Schüler au0erhalb der Gym ...

                    if (schueler.Klasse != null)
                    {
                        if (!schueler.Klasse.StartsWith("G"))
                        {
                            // ... sofern in seiner Klasse Religionsunterricht angeboten wird ...

                            var reliunterrichtDerKlasseDesSchülers = (from u in unterrichts
                                                                      where u.Klasse.NameUntis == schueler.Klasse
                                                                      where (u.Fach.KürzelUntis.StartsWith("KR ") ||
                                                                             u.Fach.KürzelUntis.StartsWith("ER ") ||
                                                                             u.Fach.KürzelUntis == "KR" ||
                                                                             u.Fach.KürzelUntis == "ER")
                                                                      select u).FirstOrDefault();
                            if (reliunterrichtDerKlasseDesSchülers != null)
                            {
                                // ... und der Schüler sich nicht abgemeldet oder ab- und später wieder angemeldet hat ...

                                Kurswahl kurswahl = new Kurswahl();

                                if ((schueler.Reliabmeldung.Year == 1 || schueler.Relianmeldung > schueler.Reliabmeldung))
                                {
                                    // ... wird die Kurswahl hinzugefügt.

                                    kurswahl.StudentKurzname = schueler.Anmeldename;
                                    kurswahl.Geburtsdatum    = schueler.Gebdat;
                                    kurswahl.Nachname        = schueler.Nachname;
                                    kurswahl.Vorname         = schueler.Vorname;
                                    kurswahl.StudentId       = schueler.IdUntis;
                                    kurswahl.AlternativeCourses.Add(reliunterrichtDerKlasseDesSchülers.IdUntis.ToString() + "/" + reliunterrichtDerKlasseDesSchülers.Fach.IdUntis + "/1");
                                    kurswahl.Fach   = reliunterrichtDerKlasseDesSchülers.Fach.KürzelUntis;
                                    kurswahl.Klasse = schueler.Klasse;

                                    try
                                    {
                                        if ((from k in kurswahlenIst where k.StudentId == schueler.IdUntis select k).Count() == 0)
                                        {
                                            kurswahl.Number = 1;
                                        }
                                        else
                                        {
                                            kurswahl.Number = (from k in kurswahlenIst where k.StudentId == schueler.IdUntis select k.Number).Max() + 1;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex);
                                        Console.ReadKey();
                                    }

                                    if (schueler.Kurse == null)
                                    {
                                        schueler.Kurse = new List <Kurswahl>();
                                    }
                                    schueler.Kurse.Add(kurswahl);

                                    // Wenn die Reli-Kurswahl in Untis noch nicht existiert, wird sie ergänzt:

                                    if (!(from k in kurswahlenIst
                                          where k.Fach == kurswahl.Fach
                                          where k.Klasse == kurswahl.Klasse
                                          where k.StudentId == kurswahl.StudentId
                                          select k).Any())
                                    {
                                        kurswahl.AktSj = aktSJ;
                                        kurswahl.InsertIntoStudentChoice(periode);
                                    }

                                    // Wenn die Relikurswahl existert, aber Deleted ist, wird sie wieder aktiviert:

                                    if ((from k in kurswahlenIst
                                         where k.Fach == kurswahl.Fach
                                         where k.Klasse == kurswahl.Klasse
                                         where k.StudentId == kurswahl.StudentId
                                         where k.Deleted == true
                                         select k).Any())
                                    {
                                        kurswahl.AktSj = aktSJ;
                                        schueler.UpdateStudentChoice(periode);
                                    }
                                }

                                // Wenn der Schüler den existierenden Religionskurs abgewählt hat, ...

                                else
                                {
                                    // ... und bereits eine Kurswahl besteht ...

                                    var kk = (from k in kurswahlenIst
                                              where k.Fach == reliunterrichtDerKlasseDesSchülers.Fach.KürzelUntis
                                              where k.Klasse == schueler.Klasse
                                              where k.StudentId == schueler.IdUntis
                                              select k).FirstOrDefault();

                                    if (kk != null)
                                    {
                                        // ... und die Kurswahl nicht bereits delted wurde ...

                                        if (!kk.Deleted)
                                        {
                                            // ... wird die Kurswahl gelöscht.

                                            schueler.DeleteStudentChoice(periode);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        //Console.WriteLine("Der Schüler " + schueler.Nachname + ", " + schueler.Vorname + "(" + schueler.IdAtlantis +"; " + schueler.IdUntis  + ") hat keine Klasse.");
                        //Console.ReadKey();
                    }
                }
            }
        }