/// <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; }
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."); } }
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"; }
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); } }
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]; } }
/// <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); } } } } } }
public void MeldeAn(string nachFachKuerzel) { FachTableAdapter ada = new FachTableAdapter(); foreach (var kurs in AlleMoeglichenKurse()) { var fach = kurs.getFach; if (fach.Kuerzel == nachFachKuerzel) { MeldeAn(kurs); } } }
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)); } } }