/// <summary>
        /// Prüft, ob ein Schueler in einem Kurs ist. Voreinstellung: Der Schueler ist drin, solange kein Selector ihn rausnimmt.
        /// Der Fremdsprachenselektor prüft, ob Französisch als zweite Fremdsprache eingetragen ist.
        /// </summary>
        /// <param name="schueler">Der Schüler.</param>
        /// <param name="kurs">Der Kurs (momentan nur französisch).</param>
        /// <returns>true wenn der Schüler französisch gewählt hat.</returns>
        public bool IsInKurs(diNoDataSet.SchuelerRow schueler, diNoDataSet.KursRow kurs)
        {
            var fach = new FachTableAdapter().GetDataById(kurs.FachId)[0];
              if (fach.Kuerzel.Equals("F", StringComparison.OrdinalIgnoreCase))
              {
            // F3 steht für französisch fortgeführt. Diese Leute gehören nicht in den "normalen" Französischkurs
            return (fach.Kuerzel.Equals(schueler.Fremdsprache2, StringComparison.OrdinalIgnoreCase)) && !(schueler.Wahlpflichtfach.Equals("F3", StringComparison.OrdinalIgnoreCase));
              }

              return true;
        }
Beispiel #2
0
 public Fach(int id)
 {
     var rst = new FachTableAdapter().GetDataById(id);
     if (rst.Count == 1)
     {
         this.data = rst[0];
     }
     else
     {
         throw new InvalidOperationException("Konstruktor Kurs: Ungültige ID.");
     }
 }
Beispiel #3
0
 public override void Init()
 {
     FachTableAdapter BerichtTableAdapter;
     rpt.BerichtBindingSource.DataMember = "Fach";
     BerichtTableAdapter = new FachTableAdapter();
     BerichtTableAdapter.ClearBeforeFill = true;
     BerichtTableAdapter.Fill(rpt.diNoDataSet.Fach);
     rpt.reportViewer.LocalReport.ReportEmbeddedResource = "diNo.rptFachliste.rdlc";
 }
Beispiel #4
0
 private void LoadFaecher()
 {
     eigeneFaecher = new List<Fach>();
       var ta = new FachTableAdapter();
       diNoDataSet.FachDataTable dtFach = this.lehrer.HatRolle(Rolle.Admin) ? ta.GetData() : ta.GetDataByLehrerId(lehrer.Id);
       foreach (var fRow in dtFach)
       {
     Fach f = new Fach(fRow);
     eigeneFaecher.Add(f);
     FachRep.Add(f);
       }
 }
        /// <summary>
        /// Prüft, ob ein Schueler in einem Kurs ist.
        /// </summary>
        /// <param name="schueler">Der Schüler.</param>
        /// <param name="kurs">Der Kurs.</param>
        /// <returns>true, wenn der Schüler in diesen Kurs gehen soll.</returns>
        public bool IsInKurs(diNoDataSet.SchuelerRow schueler, diNoDataSet.KursRow kurs)
        {
            var fach = new FachTableAdapter().GetDataById(kurs.FachId)[0];
              Schueler derSchueler = new Schueler(schueler);

              if (derSchueler.getKlasse.Zweig == Zweig.Wirtschaft)
              {
            if (derSchueler.getKlasse.Schulart == Schulart.FOS)
            {
              // Wirtschafts-FOSler müssen zwischen WIn und Französisch (fortgeführt) wählen
              // wenn der Schüler dieses Fach extra gewählt hat soll er natürlich reingehen
              if (fach.Kuerzel.Equals("F-Wi", StringComparison.OrdinalIgnoreCase) &&
            schueler.Wahlpflichtfach.Equals("F3", StringComparison.OrdinalIgnoreCase))
              {
            return true;
              }

              if (fach.Kuerzel.Equals("WIn", StringComparison.OrdinalIgnoreCase) &&
            schueler.Wahlpflichtfach.Equals("WIn", StringComparison.OrdinalIgnoreCase))
              {
            return true;
              }

              return false;
            }
            else
            {
              // Wirtschafts-BOSler gehen immer in WIn, aber nie in Französisch (fortgeführt) oder Kunst
              return fach.Kuerzel.Equals("WIn", StringComparison.OrdinalIgnoreCase);
            }
              }

              // Für Soziale gilt: Wer Kunst als Wahlpflichtfach gewählt hat geht in Kunst
              // wer Französisch als Wahlpflichtfach gewählt hat, geht in Französisch (das macht aber der
              // Fremdsprachenselector, weil dann Französisch als Sprache2 eingetragen wird)
              if (derSchueler.getKlasse.Zweig == Zweig.Sozial)
              {
            if (fach.Kuerzel.Equals("Ku", StringComparison.OrdinalIgnoreCase) &&
            schueler.Wahlpflichtfach.Equals("Ku", StringComparison.OrdinalIgnoreCase))
            {
              return true;
            }
              }

              return false;
        }
        /// <summary>
        /// Prüft, ob ein Schueler in einem Kurs ist. Voreinstellung: Der Schueler ist drin, solange kein Selector ihn rausnimmt.
        /// </summary>
        /// <param name="schueler">Der Schueler.</param>
        /// <param name="kurs">Der Kurs.</param>
        /// <returns>False wenn es einen Grund gibt, weswegen der Schueler in diesen Kurs nicht gehen darf. Sonst true.</returns>
        public bool IsInKurs(diNoDataSet.SchuelerRow schueler, diNoDataSet.KursRow kurs)
        {
            var fach = new FachTableAdapter().GetDataById(kurs.FachId)[0];
             	    foreach (ISchuelerKursSelector selector in this.allSelectors)
              {
            if (selector.IsInterestedInFach(fach) && !selector.IsInKurs(schueler, kurs))
            {
              return false;
            }
              }

              return true;
        }
        /// <summary>
        /// Prüft, ob ein Schueler in einem Kurs ist.
        /// </summary>
        /// <param name="schueler">Der Schüler.</param>
        /// <param name="kurs">Der Kurs.</param>
        /// <returns>true, wenn der Schüler in diesen Kurs gehen soll.</returns>
        public bool IsInKurs(diNoDataSet.SchuelerRow schueler, diNoDataSet.KursRow kurs)
        {
            var fach = new FachTableAdapter().GetDataById(kurs.FachId)[0];

              // wenn eine Wahl vorliegt, zuerst danach richten
              bool kursGewaehlt = !string.IsNullOrEmpty(schueler.ReligionOderEthik);
              if (kursGewaehlt)
              {
            bool katholisch = fach.Kuerzel.Equals("K", StringComparison.OrdinalIgnoreCase) && schueler.ReligionOderEthik.Equals("RK", StringComparison.OrdinalIgnoreCase);
            bool evangelisch = fach.Kuerzel.Equals("Ev", StringComparison.OrdinalIgnoreCase) && schueler.ReligionOderEthik.Equals("EV", StringComparison.OrdinalIgnoreCase);
            bool ethik = fach.Kuerzel.Equals("Eth", StringComparison.OrdinalIgnoreCase) && schueler.ReligionOderEthik.Equals("Eth", StringComparison.OrdinalIgnoreCase);

            return katholisch || evangelisch || ethik;
              }
              else
              {
            // wenn keine Wahl vorliegt, dann muss das Bekenntnis passen
            // wenn das auch nicht passt, dann stecken wir den Schueler in Ethik
            bool bekenntnisStimmt = IsEqualBekenntnis(schueler.Bekenntnis, fach.Kuerzel);
            return bekenntnisStimmt || fach.Kuerzel.Equals("Eth", StringComparison.OrdinalIgnoreCase);
              }
        }
Beispiel #8
0
        private static Kurs FindOrCreateDummyKurs(string bezeichnung, string fachKuerzel)
        {
            var kursAdapter = new KursTableAdapter();
              var fachAdapter = new FachTableAdapter();

              var kurse = kursAdapter.GetDataByBezeichnung(bezeichnung);
              if (kurse == null || kurse.Count == 0)
              {
            kursAdapter.Insert(bezeichnung, null, fachAdapter.GetDataByKuerzel(fachKuerzel)[0].Id, null);
            kurse = kursAdapter.GetDataByBezeichnung(bezeichnung);
              }
              if (kurse == null || kurse.Count == 0)
              {
            throw new InvalidOperationException("Dummykurs "+ bezeichnung + " konnte nicht angelegt werden.");
              }

              return new Kurs(kurse[0]);
        }
        /// <summary>
        /// Sucht oder erzeugt ein Fach in der Datenbank.
        /// </summary>
        /// <param name="aFach">Das Fachkürzel.</param>
        /// <returns>Die Zeile des Faches in der Datenbank.</returns>
        public static diNoDataSet.FachRow FindOrCreateFach(string aFach)
        {
            using (var fachAdapter = new FachTableAdapter())
              {
            var faecher = fachAdapter.GetDataByKuerzel(aFach);
            if (faecher.Count == 0)
            {
              // Fach voller Name muss in der Datenbank angepasst werden
              new FachTableAdapter().Insert("", aFach,false);
              faecher = new FachTableAdapter().GetDataByKuerzel(aFach);
            }

            return faecher[0];
              }
        }
Beispiel #10
0
        /// <summary>
        /// Prüft, ob die Legasthenievermerke der Datenbank mit der Excel-Datei übereinstimmen.
        /// </summary>
        /// <param name="sheet">Das Excel-Sheet.</param>
        /// <param name="kursAdapter">Der Kurs-Adapter.</param>
        /// <param name="kurs">Die Zeile des aktuellen Kurses in der Datenbank.</param>
        /// <param name="alleSchueler">Liste aller Schüler aus der Datenbank.</param>
        private static void CheckLegastheniker(ExcelSheet sheet, KursTableAdapter kursAdapter, diNoDataSet.KursRow kurs, diNoDataSet.SchuelerKursDataTable alleSchueler)
        {
            //TODO: Methode ungetestet
              using (FachTableAdapter fachAdapter = new FachTableAdapter())
              {
            var deutsch = fachAdapter.GetDataByKuerzel("D")[0];
            var englisch = fachAdapter.GetDataByKuerzel("E")[0];
            if (kurs.FachId == deutsch.Id || kurs.FachId == englisch.Id)
            {
              foreach (var schueler in alleSchueler)
              {
            var excelSchueler = sheet.Schueler.FirstOrDefault(
              x => x.Id == schueler.SchuelerId
              );

            //falls der Schüler noch in der Excel-Datei drinsteht. Könnte ja sein, dass er schon ausgetreten o. ä. ist
            if (excelSchueler != null)
            {
              var dbSchueler = new SchuelerTableAdapter().GetDataById(schueler.SchuelerId)[0];
              if (excelSchueler.IsLegastheniker != (dbSchueler.LRSSchwaeche || dbSchueler.LRSStoerung))
              {
                excelSchueler.IsLegastheniker = (dbSchueler.LRSSchwaeche || dbSchueler.LRSStoerung);
                sheet.SetLegasthenieVermerk(excelSchueler);
              }
            }
              }
            }
              }
        }
Beispiel #11
0
 public void MeldeAn(string nachFachKuerzel)
 {
     FachTableAdapter ada = new FachTableAdapter();
       foreach (var kurs in AlleMoeglichenKurse())
       {
     var fach = kurs.getFach;
     if (fach.Kuerzel == nachFachKuerzel)
     {
       MeldeAn(kurs);
     }
       }
 }
Beispiel #12
0
 public void MeldeAb(string vonFachKuerzel)
 {
     FachTableAdapter ada = new FachTableAdapter();
       foreach (var kurs in this.Kurse)
       {
     var fach = ada.GetDataById(kurs.FachId)[0];
     if (fach.Kuerzel == vonFachKuerzel)
     {
       MeldeAb(new Kurs(kurs));
     }
       }
 }