예제 #1
0
        private static List<Schueler> GetSortedSchuelerList(Klasse klasse)
        {
            List<Schueler> schueler = new List<Schueler>();
              foreach (var einSchueler in klasse.getSchueler)
              {
            schueler.Add(new Schueler(einSchueler));
              }

              schueler.Sort((x, y) => x.NameVorname.CompareTo(y.NameVorname));
              return schueler;
        }
예제 #2
0
 public NotenCheckResults CheckKlasse(Klasse klasse)
 {
     IList<INotenCheck> notwendigeNotenchecks = new List<INotenCheck>();
     foreach (var ch in alleNotenchecks)
     {
         if (ch.CheckIsNecessary(klasse.Jahrgangsstufe, klasse.Schulart, zeitpunkt))
             notwendigeNotenchecks.Add(ch);
     }
     foreach (var schueler in klasse.getSchueler)
     {
         CheckSchueler(new Schueler(schueler),notwendigeNotenchecks);
     }
     return res;
 }
예제 #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            List<Klasse> klassen = new List<Klasse>();
              foreach (var klasse in (new KlasseTableAdapter().GetData()))
              {
            Klasse dieKlasse = new Klasse(klasse);
            klassen.Add(dieKlasse);
              }

              klassen.Sort((x, y) => x.Bezeichnung.CompareTo(y.Bezeichnung));

              treeListView1.Roots = klassen;
              this.treeListView1.CanExpandGetter = delegate (object x) { return (x is Klasse); };
              this.treeListView1.ChildrenGetter = delegate (object x) { return GetSortedSchuelerList((Klasse)x); };
        }
예제 #4
0
파일: Zugriff.cs 프로젝트: FOSBOS/diNo
        public void LoadSchueler(bool nurAktive=true)
        {
            diNoDataSet.SchuelerDataTable sListe;
              int NotStatus = nurAktive?1:255; // Status=1 bedeutet abgemeldet,

              var ta = new SchuelerTableAdapter();
              if (SiehtAlles)
            sListe = ta.GetDataByStatus(NotStatus); // alle Schüler reinladen
              else if (IstNurNormalerLehrer)
            sListe = ta.GetDataByLehrerId(NotStatus,lehrer.Id); //  nur eigene Schüler
              else
            sListe = ta.GetDataByLehrerIdFPASem(NotStatus,lehrer.Id); // Lehrer mit erweiterten Rollen

              AnzahlSchueler = sListe.Count;
              foreach (var sRow in sListe)
              {
            Klasse k;
            Schueler s = new Schueler(sRow);
            SchuelerRep.Add(s); // Schüler ins Repository aufnehmen

            if (KlassenRep.Contains(sRow.KlasseId))
            {
              k = KlassenRep.Find(sRow.KlasseId);
            }
            else
            {
              k = new Klasse(sRow.KlasseId);
              Klassen.Add(k);
              KlassenRep.Add(k);
            }
            s.getKlasse = k; // dem Schüler die Klasseninstanz zuweisen, damit die nicht jedesmal neu erzeugt werden muss!
            k.eigeneSchueler.Add(s); // und umgekehrt dieser Klasse den Schüler hinzufügen
              }

              // alles sortieren
              Klassen.Sort((x, y) => x.Bezeichnung.CompareTo(y.Bezeichnung));
              foreach (var klasse in Klassen)
              {
            klasse.eigeneSchueler.Sort((x, y) => x.NameVorname.CompareTo(y.NameVorname));
            if (klasse.KlassenleiterId == lehrer.Id) eigeneKlasse = klasse;
              }
        }
예제 #5
0
파일: Fach.cs 프로젝트: TheTypoMaster/diNo
        // Ermittelt die SA-Wertung für diesen Kurs
        // todo: strings durch Schlüssel ersetzen
        public Schulaufgabenwertung GetSchulaufgabenwertung(Klasse klasse)
        {
            Jahrgangsstufe jahrgang = klasse.Jahrgangsstufe;

            // Prüfungsfächer haben immer SA (Vorklasse und 12. 3, sonst 2)
            if (data.IstSAP)
            {
                if (klasse.Jahrgangsstufe == Jahrgangsstufe.Vorklasse || klasse.Jahrgangsstufe == Jahrgangsstufe.Zwoelf)
                    return Schulaufgabenwertung.ZweiZuEins;
                else
                    return Schulaufgabenwertung.EinsZuEins;
            }
            else
            {
                if (Kuerzel == "TeIn" || Kuerzel == "VWL" || Kuerzel == "B")
                    return Schulaufgabenwertung.EinsZuEins;
                else
                    return Schulaufgabenwertung.KurzarbeitenUndExen;
            }

            /* oder via SA-Zahl,  Problem ist ToString geht grad nicht; ToDo: Strings durch Ids ersetzen
            var wertung = ada.GetDataByAllInfos(schulart.ToString(), jahrgang.ToString(), zweig.ToString(), fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            wertung = ada.GetDataByAllInfos("ALLE", jahrgang.ToString(), zweig.ToString(), fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            wertung = ada.GetDataByAllInfos("ALLE", jahrgang.ToString(), "ALLE", fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            wertung = ada.GetDataByAllInfos(schulart.ToString(), jahrgang.ToString(), "ALLE", fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            wertung = ada.GetDataByAllInfos("ALLE", "ALLE", zweig.ToString(), fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            wertung = ada.GetDataByAllInfos("ALLE", "ALLE", "ALLE", fach.Id);
            if (wertung.Count > 0)
            {
                schulaufgabenzahl = wertung[0].AnzahlSA;
            }

            if (schulaufgabenzahl == 1 || schulaufgabenzahl == 2)
            {
                return Schulaufgabenwertung.EinsZuEins;
            }
            else if (schulaufgabenzahl > 2)
            {
                return Schulaufgabenwertung.ZweiZuEins;
            }
            else
            {
                log.InfoFormat("keine Schulaufgabenwertung gefunden für: Schulart={0}, Jahrgang={1}, Zweig={2}, Fach={3}. Gehe von Kurzarbeiten und Exen aus.", schulart.ToString(), jahrgang.ToString(), zweig.ToString(), fach.Kuerzel);
                return Schulaufgabenwertung.KurzarbeitenUndExen;
            }
            */
        }
예제 #6
0
 public NotenCheckResult(Klasse kl,Kurs k,string m)
 {
     schueler = "...mehrmals...";
     klasse = kl.Data.Bezeichnung;
     lehrer = k!=null && k.getLehrer != null ? k.getLehrer.Kuerzel : "";
     fach =   k!=null ? k.getFach.Kuerzel : "";
     meldung = m;
 }
예제 #7
0
 // Klassenweise Vorauswahl, damit weniger Schüler einzeln erst analysiert werden müssen.
 private void KlasseInNotenpruefungAufnehmen(Klasse k)
 {
     if (zeitpunkt==Zeitpunkt.HalbjahrUndProbezeitFOS ||
         zeitpunkt==Zeitpunkt.ProbezeitBOS && k.Jahrgangsstufe == Jahrgangsstufe.Vorklasse ||
         k.Jahrgangsstufe>=Jahrgangsstufe.Zwoelf && zeitpunkt<=Zeitpunkt.DrittePA ||
         k.Jahrgangsstufe<Jahrgangsstufe.Zwoelf && zeitpunkt==Zeitpunkt.Jahresende)
     {
       zuPruefendeKlassen.Add(k);
       AnzahlSchueler += k.eigeneSchueler.Count;
     }
 }
예제 #8
0
파일: Schueler.cs 프로젝트: FOSBOS/diNo
        /// <summary>
        /// Methode für den Klassenwechsel ohne Notenmitnahme.
        /// </summary>
        /// <param name="nachKlasse"></param>
        public void WechsleKlasse(Klasse nachKlasse)
        {
            // melde den Schüler aus allen Kursen ab.
              foreach (var kurs in this.Kurse)
              {
            MeldeAb(new Kurs(kurs));
              }

              data.KlasseId = nachKlasse.Data.Id;
              getKlasse = nachKlasse;
              Save();

              var kurse = AlleNotwendigenKurse();
              foreach (var kurs in kurse)
              {
            MeldeAn(kurs);
              }

              this.Refresh();
        }
예제 #9
0
파일: Schueler.cs 프로젝트: FOSBOS/diNo
        /// <summary>
        /// Hole alle Daten von Neuem aus der Datenbank.
        /// </summary>
        public void Refresh()
        {
            var rst = new SchuelerTableAdapter().GetDataById(this.Id);
              if (rst.Count == 1)
              {
            this.data = rst[0];
              }
              else
              {
            throw new InvalidOperationException("Konstruktor Schueler: Ungültige ID.");
              }

              this.klasse = null;
              this.kurse = null;
              this.noten = null;
              this.vorkommnisse = null;
        }