Exemple #1
0
        public async Task <IActionResult> PutSchueler([FromRoute] int id, [FromBody] Schueler schueler)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != schueler.SchuelerID)
            {
                return(BadRequest());
            }

            _context.Entry(schueler).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SchuelerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        static void Main(string[] args)
        {
            /* INITIALIZER */
            Schule s = new Schule()
            {
                Skz = 905417, Name = "HTL Spengergasse"
            };

            s.AddKlasse(new Klasse()
            {
                Name = "5CHIF"
            });
            s.AddKlasse(new Klasse()
            {
                Name = "5BHIF"
            });
            Schueler sch = new Schueler {
                Id = 1, Nachname = "Mustermann", Vorname = "Max"
            };

            s.Klassen["5CHIF"].AddSchueler(sch);
            // Das geht nicht, da id 1 doppelt ist.
            s.Klassen["5BHIF"].AddSchueler(new Schueler
            {
                Id       = 1,
                Nachname = "Mustermann2",
                Vorname  = "Max2"
            });
        }
        /// <summary>
        /// Diese Methode selektiert alle Schüler aus der Datenbank
        /// </summary>
        public void selectStudents()
        {
            try
            {
                string           query          = "SELECT * FROM `studentmanagement-db`.tbl_student;";
                MySqlCommand     command        = new MySqlCommand(query, mySqlConnection);
                MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(command);
                using (sqlDataAdapter)
                {
                    command.ExecuteNonQuery();
                    DataTable studentTable = new DataTable();
                    sqlDataAdapter.Fill(studentTable);
                    if (students != null)
                    {
                        students.Clear();
                    }
                    foreach (DataRow dataRow in studentTable.Rows)
                    {
                        Schueler nschueler = new Schueler();
                        nschueler.Vorname = Convert.ToString(dataRow["Vorname"]);

                        students.Add(nschueler);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void btnSpeichern_Click(object sender, EventArgs e)
        {
            if (tbVorname.Text.Equals("") || tbNachname.Text.Equals("") || tbKlasse.Text.Equals("") || tbFörderkurs.Text.Equals(""))
            {
                MessageBox.Show("Bitte füllen Sie Vorname, Nachname, Klasse und Förderkurs aus!");
                return;
            }


            Schueler s = new Schueler();

            s.SID      = 1;
            s.Vorname  = tbVorname.Text;
            s.Nachname = tbNachname.Text;

            var request = new RestRequest();


            if (Text.Equals("Schueler hinzufügen"))
            {
                request = new RestRequest("schueler", Method.POST);
            }
            else
            {
                s.SID   = schuelerID;
                request = new RestRequest("schueler", Method.PUT);
            }

            request.AddHeader("Content-Type", "application/json");
            request.AddJsonBody(a);
            var response = restClient.Execute(request);

            Close();
        }
        private static void GeneriereSchuelerKlasse(Schueler schueler, string[] tmp)
        {
            string kbez = tmp[4];
            int    ksj  = 0;

            if (!Int32.TryParse(tmp[5].Split('/')[0], out ksj))
            {
                throw new FormatException($"Fehlerhaftes Format bei '{tmp[5]}'");
            }

            Klasse k = DBZugriff.Current.SelectFirstOrDefault <Klasse>(x => x.Bez == kbez && x.SJ == ksj);

            //404
            if (k == null)
            {
                throw new NullReferenceException($"Konnte keine passende Klasse für Beschreibung '{kbez}'");
            }

            SchuelerKlasse sk = DBZugriff.Current.SelectFirstOrDefault <SchuelerKlasse>(x => x.Klasse == k && x.Schueler == schueler);

            if (sk == null)
            {
                //Schueler befindet sich bereits in einer Klasse, die im gleichen SJ war und aktiv ist => Klasse deaktivieren
                schueler.SchuelerKlassen.Where(x => x.Klasse.SJ == ksj && x.Active == true).ToList().ForEach(x => x.Active = false);

                sk = new SchuelerKlasse();

                sk.Schueler = schueler;
                sk.Klasse   = k;

                DBZugriff.Current.Speichern(sk, false);
            }
        }
        public IActionResult DeleteFromForm(string id)
        {
            if (!long.TryParse(id, out long idParsed))
            {
                return(BadRequest());
            }

            Schueler found = db.Schueler.Find(idParsed);

            if (found == null)
            {
                return(Ok());
            }

            db.Entry(found).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
            try
            {
                db.SaveChanges();
            }
            catch (Microsoft.EntityFrameworkCore.DbUpdateException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            return(Ok(new { found.S_Nr, found.S_Vorname, found.S_Zuname, found.S_Geschl, found.S_Klasse }));
        }
Exemple #7
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,KlasseId")] Schueler schueler)
        {
            if (id != schueler.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(schueler);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SchuelerExists(schueler.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["KlasseId"] = new SelectList(_context.Klasse, "Id", "Id", schueler.KlasseId);
            return(View(schueler));
        }
Exemple #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            Schueler schueler = db.Schuelers.Find(id);

            db.Schuelers.Remove(schueler);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Schueler course = unitOfWork.GetRepository <Schueler>().GetByID(id);

            unitOfWork.GetRepository <Schueler>().Delete(id);
            unitOfWork.Save();
            return(RedirectToAction("Index"));
        }
        public void TestAddSchueler()
        {
            Schule s = new Schule()
            {
                Skz = 905417, Name = "HTL Spengergasse"
            };

            s.AddKlasse(new Klasse()
            {
                Name = "5CHIF"
            });
            s.AddKlasse(new Klasse()
            {
                Name = "5BHIF"
            });
            Schueler sch = new Schueler {
                Id = 1, Nachname = "Mustermann", Vorname = "Max"
            };

            s.Klassen["5BHIF"].AddSchueler(sch);
            s.Klassen["5CHIF"].AddSchueler(sch);
            s.Klassen["5CHIF"].AddSchueler(new Schueler()
            {
                Id = 2, Vorname = "", Nachname = ""
            });
            s.Klassen["5CHIF"].AddSchueler(new Schueler()
            {
                Id = 3, Vorname = "", Nachname = ""
            });
            s.Klassen["5CHIF"].AddSchueler(new Schueler()
            {
                Id = 4, Vorname = "", Nachname = ""
            });
            s.Klassen["5CHIF"].AddSchueler(new Schueler()
            {
                Id = 5, Vorname = "", Nachname = ""
            });
            // Prüfen, wenn der Schüler NULL ist
            Assert.AreEqual <bool>(false, s.Klassen["5CHIF"].AddSchueler(null));
            // Zuordnung OK?
            Assert.AreEqual <Schueler>(sch, s.Klassen["5CHIF"].FindSchuelerById(1));
            // Mehr als 5 Schüler gehen nicht?
            Assert.AreEqual <bool>(false, s.Klassen["5CHIF"].AddSchueler(
                                       new Schueler()
            {
                Id = 6, Vorname = "", Nachname = ""
            }
                                       ));

            // Das geht nicht, da id 1 doppelt ist.
            s.Klassen["5BHIF"].AddSchueler(new Schueler
            {
                Id       = 1,
                Nachname = "Mustermann2",
                Vorname  = "Max2"
            });
        }
        // GET: /Schueler/Edit/
        public ActionResult Edit(int id)
        {
            Schueler schuelere = unitOfWork.GetRepository <Schueler>().GetByID(id);
            var      klasse    = unitOfWork.GetRepository <Klasse>().Get();

            ViewBag.klasse_id = new SelectList(klasse, "klasse_id", "Bezeichnung");

            PopulateSchuelerDropDownList(schuelere.schueler_id);
            return(View(schuelere));
        }
Exemple #12
0
        private SerienBrief createSchlechtesElternGeschpraech(Schueler schueler, float schnitt)
        {
            var    values    = new Dictionary <string, string>();
            string klassenId = schueler.KlassenId;
            var    klasse    = repo.getKlasse(klassenId);

            values.Add(KLASSE_ID, klassenId);
            values.Add(LEHRER_NAME, klasse.Lehrer.Vorname + " " + klasse.Lehrer.Nachname);
            values.Add(ELTERN_NACHNAME, schueler.ErziehungsberechtigtePersonen[0].Nachname);
            return(new SerienBrief(SerienBriefType.ElternGespraechSchlecht, values));
        }
Exemple #13
0
 public ActionResult Edit([Bind(Include = "schueler_id,Vorname,Nachname,klasse_id")] Schueler schueler)
 {
     if (ModelState.IsValid)
     {
         db.Entry(schueler).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.klasse_id = new SelectList(db.Klasses, "klasse_id", "Bezeichnung", schueler.klasse_id);
     return(View(schueler));
 }
Exemple #14
0
        public async Task <IActionResult> PostSchueler([FromBody] Schueler schueler)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Schueler.Add(schueler);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSchueler", new { id = schueler.SchuelerID }, schueler));
        }
Exemple #15
0
 public async Task <bool> Post([FromBody] Schueler value)
 {
     try
     {
         await SchoolContext.Instance().SaveItem(value, SchoolContext.Instance().GetCollection <Schueler>(_collectionName));
     }
     catch (Exception)
     {
         return(false);
     }
     return(true);
 }
Exemple #16
0
 private void ResetSchueler()
 {
     OnPropertyChanged(nameof(LstSchueler));
     if (LstSchueler.Count > 0)
     {
         CurrentSchueler = LstSchueler[0];
     }
     else
     {
         CurrentSchueler = null;
     }
 }
Exemple #17
0
        public async Task <IActionResult> Create([Bind("Id,Name,KlasseId")] Schueler schueler)
        {
            if (ModelState.IsValid)
            {
                _context.Add(schueler);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["KlasseId"] = new SelectList(_context.Klasse, "Id", "Id", schueler.KlasseId);
            return(View(schueler));
        }
 public IActionResult PostFromBody([FromBody] Schueler schueler)
 {
     db.Entry(schueler).State = Microsoft.EntityFrameworkCore.EntityState.Added;
     try
     {
         db.SaveChanges();
     }
     catch (Microsoft.EntityFrameworkCore.DbUpdateException)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
     return(Ok(new { schueler.S_Nr, schueler.S_Vorname, schueler.S_Zuname, schueler.S_Geschl, schueler.S_Klasse }));
 }
Exemple #19
0
        // GET: Schueler/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Schueler schueler = db.Schuelers.Find(id);

            if (schueler == null)
            {
                return(HttpNotFound());
            }
            return(View(schueler));
        }
Exemple #20
0
        public IActionResult DeleteFromForm([FromForm] Schueler schueler)
        {
            Schueler found = db.Schueler.FirstOrDefault(s => s.Nr == schueler.Nr);

            if (found != null)
            {
                db.Schueler.Remove(found);
                return(Ok(schueler));
            }
            else
            {
                return(Ok());
            }
        }
Exemple #21
0
        // GET: Schueler/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Schueler schueler = db.Schuelers.Find(id);

            if (schueler == null)
            {
                return(HttpNotFound());
            }
            ViewBag.klasse_id = new SelectList(db.Klasses, "klasse_id", "Bezeichnung", schueler.klasse_id);
            return(View(schueler));
        }
 public ActionResult Create(
     [Bind(Include = "schueler_id, Vorname, Nachname, klasse_id")] Schueler schueler)
 {
     try
     {
         if (ModelState.IsValid)
         {
             unitOfWork.GetRepository <Schueler>().Insert(schueler);
             unitOfWork.Save();
             return(RedirectToAction("Index"));
         }
     }
     catch (DataException /* dex */)
     {
         ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
     }
     PopulateSchuelerDropDownList(schueler.schueler_id);
     return(View(schueler));
 }
 public ActionResult Edit(
     [Bind(Include = "schueler_id, Vorname, Nachname, klasse_id")] Schueler schueler)
 {
     try
     {
         if (ModelState.IsValid)
         {
             unitOfWork.GetRepository <Schueler>().Update(schueler);
             unitOfWork.Save();
             return(RedirectToAction("Index"));
         }
     }
     catch (DataException /* dex */)
     {
         //Log the error (uncomment dex variable name after DataException and add a line here to write a log.)
         ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
     }
     PopulateSchuelerDropDownList(schueler.schueler_id);
     return(View(schueler));
 }
        public Schueler Add(Schueler schueler)
        {
            using (var tran = CurrentSession.BeginTransaction())
            {
                try
                {
                    if (schueler.schuelerID > 0)
                    {
                        throw new Exception(String.Format("A Schueler with SchuelerID {0} already exists. To update please use PUT.", schueler.SchuelerID));
                    }
                    CurrentSession.Save(schueler);
                    tran.Commit();

                    return(schueler);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
        }
        public Schueler Update(Schueler schueler)
        {
            using (var tran = CurrentSession.BeginTransaction())
            {
                try
                {
                    if (schueler.SchuelerID == 0)
                    {
                        throw new Exception("For creating a artikel please use POST");
                    }
                    CurrentSession.Update(schueler);
                    tran.Commit();

                    return(schueler);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
        }
Exemple #26
0
        public string FindeAPSchriftlichNoten(string faecherspiegel, int index, Schulart schulart, Schueler schueler, Zeitpunkt zeitpunkt)
        {
            string faecherKuerzel = omnis.SucheFach(faecherspiegel, index, schulart); // hier nur zur Anzeige etwaiger Fehlermeldungen benötigt
              if (string.IsNullOrEmpty(faecherKuerzel))
              {
            return "";
              }

              var noten = FindeFachNoten(faecherKuerzel, schueler);
              if (noten == null)
              {
            return "-"; // Fach wurde wohl nicht belegt (kann ab und zu vorkommen, z. B. bei Wahlfächern)
              }

              var apnote = noten.getNoten(Halbjahr.Zweites, Notentyp.APSchriftlich);
              if (apnote == null || apnote.Count == 0)
              {
            return "";
              }

              return string.Format(CultureInfo.CurrentCulture, "{0:00}", apnote[0]);
        }
Exemple #27
0
        public void searchStudents()
        {
            try
            {
                mySqlConnection.Open();
                string           query          = "SELECT * FROM `studentmanagement-db`.tbl_student WHERE FK_Klasse= @FK_Klasse;";
                MySqlCommand     command        = new MySqlCommand(query, mySqlConnection);
                MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(command);
                using (sqlDataAdapter)
                {
                    command.Parameters.AddWithValue("@FK_Klasse", KlassenProp.KlassenIDFK);
                    command.ExecuteNonQuery();
                    DataTable studentTable = new DataTable();
                    sqlDataAdapter.Fill(studentTable);
                    if (students != null)
                    {
                        students.Clear();
                    }
                    foreach (DataRow dataRow in studentTable.Rows)
                    {
                        Schueler nschueler = new Schueler();
                        //generieren.schueler.Schueler_ID = (int)(dataRow["tbl_student_id"]);
                        nschueler.Vorname = Convert.ToString(dataRow["Vorname"]);
                        //generieren.schueler.Nachname = Convert.ToString(dataRow["Nachname"]);


                        students.Add(nschueler);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                mySqlConnection.Close();
            }
        }
Exemple #28
0
        public FachSchuelerNoten FindeFachNoten(string faecherKuerzel, Schueler schueler)
        {
            if (faecherKuerzel.Equals("Rel", StringComparison.OrdinalIgnoreCase))
              {
            // Relinote - je nachdem, ob Schüler Evangelisch oder Katholisch ist. Geht er in Ethik: "-"
            var kath = schueler.getNoten.FindeFach("K", false);
            if (kath != null)
              return kath;

            var ev = schueler.getNoten.FindeFach("Ev", false);
            if (ev != null)
              return ev;

            return null; //offenbar weder kath. noch ev.
              }
              if (faecherKuerzel.Equals("Eth", StringComparison.OrdinalIgnoreCase))
              {
            //Ethiknote (wenn der Schüler in Ethik geht, sonst null)
            return schueler.getNoten.FindeFach("Eth", false);
              }

              return schueler.getNoten.FindeFach(faecherKuerzel, false);
        }
Exemple #29
0
        private void Statusausgabe()
        {
            if (comboBoxFehlzeitenAnzeigenSchueler.SelectedItem != null)
            {
                Schueler schueler = (Schueler)comboBoxFehlzeitenAnzeigenSchueler.SelectedItem;
                if (checkBoxFehlzeitenAnzeigenDetails.Checked)
                {
                    textBoxFehlzeitenAnzeigenAusgabe.Text = $"{schueler.ToString()}";
                    foreach (Fehlzeit fehlzeit in schueler.Fehlzeiten)
                    {
                        textBoxFehlzeitenAnzeigenAusgabe.Text += $"{Environment.NewLine}{fehlzeit.Datum.ToString("dd/MM/yyyy")} - {fehlzeit.Fehlstunden} Fehlstunden ({fehlzeit.EntschuldigteStunden} entschuldigt)";
                    }
                    textBoxFehlzeitenAnzeigenAusgabe.Text += $"{Environment.NewLine}Insgesamt {schueler.FehlzeitenSumme()} Fehlstunden, davon sind {schueler.EntschuldigteStundenSumme()} entschuldigt und {schueler.UnentschuldigteStundenSumme()} unentschuldigt.{Environment.NewLine}";
                }
                else
                {
                    textBoxFehlzeitenAnzeigenAusgabe.Text += $"Schüler {schueler.ToString()} hat insgesamt {schueler.FehlzeitenSumme()} Fehlstunden, davon sind {schueler.EntschuldigteStundenSumme()} entschuldigt und {schueler.UnentschuldigteStundenSumme()} unentschuldigt.{Environment.NewLine}";
                }

                //Scrollt automatisch ans Ende des Textes
                textBoxFehlzeitenAnzeigenAusgabe.SelectionStart = textBoxFehlzeitenAnzeigenAusgabe.Text.Length;
                textBoxFehlzeitenAnzeigenAusgabe.ScrollToCaret();
            }
        }
        public IActionResult PutFromForm(string id, [FromBody] Schueler schueler)
        {
            if (!long.TryParse(id, out long idParsed))
            {
                return(BadRequest());
            }

            Schueler found = db.Schueler.Find(idParsed);

            if (found == null)
            {
                return(Ok());
            }

            try
            {
                found.S_Geschl = schueler.S_Geschl;
                // S_Klasse müssen wir nicht setzen, es wird von EF durch die Navigation beim Setzen
                // des EntityState auf Modified gesetzt.
                found.S_KlasseNavigation = db.Klasse.Find(schueler.S_Klasse) ?? throw new InvalidOperationException("Invalid Class");
                found.S_Vorname          = schueler.S_Vorname;
                found.S_Zuname           = schueler.S_Zuname;
                db.Entry(found).State    = Microsoft.EntityFrameworkCore.EntityState.Modified;
                db.SaveChanges();
            }
            // Tritt auf, wenn die Klasse nicht gefunden wurde.
            catch (InvalidOperationException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            catch (Microsoft.EntityFrameworkCore.DbUpdateException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            return(Ok(new { found.S_Nr, found.S_Vorname, found.S_Zuname, found.S_Geschl, found.S_Klasse }));
        }
Exemple #31
0
        static void Main(string[] args)
        {
            PruefDb db = PruefDb.FromMockup();

            // *************************************************************************************
            // MUSTERBEISPIELE
            // *************************************************************************************
            // 1. Suche den Schüler mit der ID 1003
            //    Where liefert IEnumerable, also immer eine Collecion.
            //    Deswegen brauchen wir First, um auf das erste Element zugreifen
            //    zu können.
            Schueler result1 = db.Schuelers.Where(s => s.Id == 1003).First();

            // 2. Welcher Schüler hat die Id 999?
            //    First liefert eine Exception, da die Liste leer ist.
            //    FirstOrDefault liefert in diesem Fall den Standardwert (null).
            Schueler result2 = db.Schuelers.Where(s => s.Id == 999).FirstOrDefault();

            // 3. Wie viele Schüler sind in der Liste?
            int result3 = db.Schuelers.Count();

            // 4. Wie viele Schüler gehen in die 3BHIF?
            int result4 = db.Schuelers.Where(s => s.Klasse == "3BHIF").Count();

            //    Für Count existiert eine Überladung, die auch eine Filterfunktion
            //    bekommen kann.
            result4 = db.Schuelers.Count(s => s.Klasse == "3BHIF");

            // *************************************************************************************
            // ÜBUNGEN
            // *************************************************************************************
            // 5. Welche Note hat die Prüferin FAV bei ihrer schlechtesten Prüfung vergeben.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result5 (kein var verwenden!).
            object result5 = null;

            Console.WriteLine($"Beispiel 5: FAV gab schlechtestens die Note {result5}.");

            // 6. Welchen Notendurchschnitt haben die weiblichen Schülerinnen in POS?
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result6 (kein var verwenden!).
            object result6 = null;

            Console.WriteLine($"Beispiel 6: Notenschnitt der Schülerinnen in POS: {result6:0.00}");

            // 7. Welche Schüler haben 6 oder mehr Prüfungen? Gib eine Liste von Schülern zurück und gib Sie aus.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result7 (kein var verwenden!).
            object result7 = null;

            Console.WriteLine("Beispiel 7: Schüler mit mehr als 6 Prüfungen.");
            result7.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} hat mehr 6 oder mehr Prüfungen."); });

            // 8. Welche Schüler haben eine DBI Prüfung? Gib eine Liste von Schülern zurück und gib sie aus.
            //    Hinweis: kombiniere Where und Any, indem Any in der Where Funktion verwendet wird.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result8 (kein var verwenden!).
            object result8 = null;

            Console.WriteLine("Beispiel 8: Schüler mit DBI Prüfungen.");
            result8.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} hat eine DBI Prüfung."); });

            // 9. Gibt es Schüler, die nur in POS eine Prüfung haben? Gib eine Liste von Schülern zurück und gib sie aus.
            //    Hinweis: kombiniere Where und All, indem All in der Where Funktion verwendet wird.
            //    All gibt auch Schüler aus, die keine Prüfung haben. Dies kann so belassen werden.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result9 (kein var verwenden!).
            object result9 = null;

            Console.WriteLine("Beispiel 9: Schüler, die nur in POS eine Prüfung haben.");
            result9.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} hat nur in POS eine Prüfung."); });

            // 10. Welche Schüler haben keine POS Prüfung? Gib eine Liste von Schülern zurück und gib sie aus.
            //    Hinweis: kombinieren Where und Any, indem Any in der Where Funktion verwendet wird.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result10 (kein var verwenden!).
            object result10 = null;

            Console.WriteLine("Beispiel 10: Schüler, die keine POS Prüfung haben.");
            result10.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} hat keine POS Prüfung."); });

            // 11. Welche Schüler haben überhaupt keine Prüfung? Gib eine Liste von Schülern zurück und gib sie aus.
            //     Hinweis: Verwende das Count Property.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result11 (kein var verwenden!).
            object result11 = null;

            Console.WriteLine("Beispiel 11: Schüler, die überhaupt keine Prüfung haben.");
            result11.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} hat keine Prüfung."); });

            // 12. Welche Schüler hatten in Juni AM Prüfungen? Gib eine Liste von Prüfungen zurück und gib sie mit dem Schülernamen aus.
            //     Hinweis: Verwende das Month Property des Datum Feldes.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result12 (kein var verwenden!).
            object result12 = null;

            Console.WriteLine("Beispiel 12: Schüler, die im Juni eine AM Prüfung hatten.");
            result12.ToList().ForEach(p => { Console.WriteLine($"   {p.Schueler.Name} {p.Schueler.Vorname} hat bei {p.Pruefer} eine Prüfung in AM."); });

            // 13. Welche Schüler haben bei einer AM Prüfung eine negative Note,
            //     aber in E nur positive Prüfungen?
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result13 (kein var verwenden!).
            object result13 = null;

            Console.WriteLine("Beispiel 13: Schüler, die in AM einmal negativ, aber in E immer positiv waren.");
            result13.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} war in AM negativ, in E aber nie."); });

            // 14. Welche Schüler haben im Mittel bessere DBI Prüfungen als D Prüfungen. Anders gesagt: Bei wem
            //     ist der Notenschnitt der DBI Prüfungen kleiner als der Notenschnitt der D Prüfungen.
            //     Gib eine Liste von Schülern zurück, auf die das zutrifft.
            //     Hinweise:
            //       -) Wenn mit Where gefiltert wird, kann es sein, dass eine leere Liste zurückkommt.
            //       -) Average kann nur von einer Liste mit Elementen aufgerufen werden.
            //       -) Erstelle daher eine Lambda Expression mit try und catch im inneren, die false im Fehlerfall liefert.
            // Schreibe das Ergebnis mit dem richtigen Datentyp in die Variable result14 (kein var verwenden!).
            object result14 = null;

            Console.WriteLine("Beispiel 14: Schüler, in DBI bessere Prüfungen (Notenschnitt) als in D hatten.");
            result14.ToList().ForEach(s => { Console.WriteLine($"   {s.Name} {s.Vorname} ist in DBI besser als in D."); });
        }
Exemple #32
0
        /// <summary>
        /// Sucht das Fach am angegebenen Index aus dem angegebenen Fächerspiegel.
        /// </summary>
        /// <param name="faecherspiegel">Welcher Fächerspiegel, z. B. W11.</param>
        /// <param name="index">Der Index des Faches.</param>
        /// <param name="schulart">FOS oder BOS.</param>
        /// <param name="schueler">Den Schüler brauchen wir auch, um zu ermitteln ob er katholisch oder evangelisch ist.</param>
        /// <param name="zeitpunkt">Der Zeitpunkt, für welchen wir die Note ermitteln müssen.</param>
        /// <returns>Das Fach oder null, wenn kein weiteres Fach mehr im Fächerspiegel vorhanden ist.</returns>
        public string GetFachNoteString(string faecherspiegel, int index, Schulart schulart, Schueler schueler, Zeitpunkt zeitpunkt)
        {
            string faecherKuerzel = omnis.SucheFach(faecherspiegel, index, schulart); // hier nur zur Anzeige etwaiger Fehlermeldungen benötigt
              if (string.IsNullOrEmpty(faecherKuerzel))
              {
            return ""; // Wenn kein sinnvolles Fach mehr kommt, bleibt das Notenfeld leer
              }

              var dieRichtigeNote = FindeFachNoten(faecherKuerzel, schueler);
              if (dieRichtigeNote == null)
              {
            if (FehlendeNoteWirdWohlOKSein(faecherKuerzel))
            {
              log.Debug(schueler.NameVorname + " sollte in " + faecherKuerzel + " gehen, aber diese Zuordnung findet diNo nicht!");
            }
            else
            {
              log.Warn(schueler.NameVorname + " sollte in " + faecherKuerzel + " gehen, aber diese Zuordnung findet diNo nicht!");
            }
            return "-";
              }
              else
              {
            return GetNotenString(dieRichtigeNote, zeitpunkt);
              }
        }
Exemple #33
0
        private static void SucheWahlpflichtfach(Zeitpunkt zeitpunkt, Faecherspiegel faecher, VerwalteZeile zeile, Schueler schueler, int bezeichnungCol, int noteCol)
        {
            if (string.IsNullOrEmpty(zeile[bezeichnungCol]))
              {
            return;
              }

              string fach = zeile[bezeichnungCol];
              if (fach =="F3")
              {
            fach = "F-Wi";
              }

              var wahlpflichtfach = schueler.getNoten.FindeFach(fach, false);
              if (wahlpflichtfach != null)
              {
            zeile[noteCol] = faecher.GetNotenString(wahlpflichtfach, zeitpunkt);
              }
              else
              {
            log.Warn("Für den Schüler "+schueler.NameVorname+" konnte das Wahlpflichtfach "+fach+" nicht gefunden werden.");
              }
        }
Exemple #34
0
        private bool BrauchtZeugnis(Schueler schueler, Zeitpunkt zeitpunkt)
        {
            if (zeitpunkt == Zeitpunkt.HalbjahrUndProbezeitFOS)
              {
            return true; // zum Halbjahr bekommen alle ein Zeugnis
              }

              // zu den PA-Sitzungen werden nur für die 12. und 13. Jahrgangsstufe Zeugnisse übertragen
              if (zeitpunkt == Zeitpunkt.ErstePA || zeitpunkt == Zeitpunkt.ZweitePA || zeitpunkt == Zeitpunkt.DrittePA)
              {
            return schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Dreizehn || schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Zwoelf;
              }

              if (zeitpunkt == Zeitpunkt.Jahresende)
              {
            return schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Elf || schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Vorklasse || schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Vorkurs;
              }

              return false;
        }
Exemple #35
0
 public IActionResult PostFromBody([FromBody] Schueler schueler)
 {
     db.Schueler.Add(schueler);
     return(Ok(schueler));
 }
Exemple #36
0
        public string FindeJahresfortgangsNoten(string faecherspiegel, int index, Schulart schulart, Schueler schueler, Zeitpunkt zeitpunkt)
        {
            string faecherKuerzel = omnis.SucheFach(faecherspiegel, index, schulart); // hier nur zur Anzeige etwaiger Fehlermeldungen benötigt
              if (string.IsNullOrEmpty(faecherKuerzel))
              {
            return "";
              }

              var noten = FindeFachNoten(faecherKuerzel, schueler);
              if (noten == null)
              {
            return "-";
              }

              return string.Format(CultureInfo.CurrentCulture, "{0:00.00}", noten.getSchnitt(Halbjahr.Zweites).JahresfortgangMitKomma);
        }
Exemple #37
0
        private static KlassenzielOderGefaehrdung GetZielerreichung(Zeitpunkt zeitpunkt, Schueler schueler)
        {
            KlassenzielOderGefaehrdung ziel = zeitpunkt == Zeitpunkt.HalbjahrUndProbezeitFOS ? KlassenzielOderGefaehrdung.NichtGefaehrdet : KlassenzielOderGefaehrdung.VorrueckenOK;
              foreach (var vorkommnis in schueler.Vorkommnisse)
              {
            switch (vorkommnis.Art)
            {
              case Vorkommnisart.starkeGefaehrdungsmitteilung: ziel = KlassenzielOderGefaehrdung.SehrGefaehrdet; break;
              case Vorkommnisart.Gefaehrdungsmitteilung: ziel = KlassenzielOderGefaehrdung.Gefaehrdet; break;
              case Vorkommnisart.BeiWeiteremAbsinken: ziel = KlassenzielOderGefaehrdung.BeiWeiteremAbsinkenGefaehrdet; break;
              case Vorkommnisart.NichtZurPruefungZugelassen: return KlassenzielOderGefaehrdung.AbschlusspruefungOhneErfolg;
              case Vorkommnisart.Notenausgleich: return KlassenzielOderGefaehrdung.NotenausgleichGewaehrt;
              case Vorkommnisart.NichtBestanden: return KlassenzielOderGefaehrdung.AbschlusspruefungOhneErfolg;
            }
              }

              return ziel;
        }
Exemple #38
0
        private static fpaNote GetFpaNote(Zeitpunkt zeitpunkt, Schueler schueler)
        {
            if (zeitpunkt == Zeitpunkt.HalbjahrUndProbezeitFOS && !schueler.FPANoten.IsErfolg1HjNull())
              {
            //das ist dieselbe Zahlencodierung ist wie in der DB (0=nicht gesetzt, 1 = sehr gut, ... 4 = ohne Erfolg)
            return (fpaNote)schueler.FPANoten.Erfolg1Hj;
              }
              else if (!schueler.FPANoten.IsErfolgNull())
              {
            return (fpaNote)schueler.FPANoten.Erfolg;
              }

              return fpaNote.Entfaellt;
        }
Exemple #39
0
        private static AbschlusspruefungBestanden GetBestanden(Zeitpunkt zeitpunkt, Schueler schueler)
        {
            KlassenzielOderGefaehrdung zielerreichung = GetZielerreichung(zeitpunkt, schueler);
              if (zielerreichung == KlassenzielOderGefaehrdung.AbschlusspruefungOhneErfolg)
              {
            return AbschlusspruefungBestanden.NichtBestanden;
              }

              if (zielerreichung == KlassenzielOderGefaehrdung.NotenausgleichGewaehrt)
              {
            return AbschlusspruefungBestanden.BestandenMitNotenausgleichArt33;
              }

              return AbschlusspruefungBestanden.Bestanden;
        }