Exemplo n.º 1
0
        /// <summary>
        /// Sucht nach einem Schüler in der Schule
        /// </summary>
        /// <param name="id">Id des Schülers</param>
        /// <returns>Gibt ein ganzes Objekt vom Typ Schüler zurück</returns>
        public Schueler FindSchuelerById(int id)
        {
            /*
             *  NICHT NACHMACHEN!!!!! NUR ZUM ZEIGEN!!!
             *  Würde sich die ganze DB holen (Bsp. 40 Millionen Datensätze) und dann durchiterieren...
             *  Kommentar Schletz: So gibs garantiert nur die Note >=4 ;-)
             *
             *  foreach(Klasse k in Klassen.Values)
             *  {
             *      foreach(Schueler s in k.Schueler)
             *      {
             *          if(s.Id == id)
             *          {
             *              return s;
             *          }
             *      }
             *  }
             *
             *  foreach(Klasse k in Klassen.Values)
             *  {
             *      Schueler found = k.FindSchuelerById(id);
             *      if(found != null)
             *      {
             *          return found;
             *      }
             *  }
             */

            //"Aktuelle" Lösung (Stand mit Ende der Stunde) --> nächste Woche weiter
            foreach (Klasse k in Klassen.Values)
            {
                Schueler found = k.FindSchuelerById(id);
                if (found != null)
                {
                    return(found);
                }
            }

            /*
             *  Schöne Lösung, produktivbetriebs-Lösung --> evtl. statt var den richtigen Datentyp angeben.
             *  var res = (from k in Klassen.Values
             *             from s in k.Schueler
             *             where s.Id == id
             *             select s).FirstOrDefault();
             */
            return(null);
        }
Exemplo n.º 2
0
        public Schueler FindSchuelerById(int id)
        {
            /* SO GIBTS GARANTIERT NUR DIE NOTE >= 4 */
            foreach (Klasse k in Klassen.Values)
            {
                Schueler found = k.FindSchuelerById(id);
                if (found != null)
                {
                    return(found);
                }
            }

            /*
             * var res = (from k in Klassen.Values
             *         from s in k.Schueler
             *         where s.Id == id
             *         select s).FirstOrDefault();
             */
            return(null);
        }
Exemplo n.º 3
0
        /*/// <summary>
         * /// Fügt der Klasse einen neuen Schüler hinzu
         * /// </summary>
         * /// <param name="s">Schüler als fertiges Objekt</param>
         * public void AddSchueler(Schueler s)
         * {
         *  if(s != null)
         *  {
         *      if (Schueler.Count < 5)
         *      {
         *          Schueler.Add(s);
         *
         *          //"Prüft" ob es dem Schüler gibt und löscht ihn dann, mit ? wird das klassiche != null überprüft
         *          s.Klasse?.Schueler.Remove(s);
         *
         *          //vgl. mit Diagramm --> NICHT VERGESSEN!!! --> Referenzen (Rückreferenz null, Schüler ohne Klasse)!!!
         *          s.Klasse = this;
         *      }
         *
         *  }
         *
         *  /*
         *      oder:
         *      if(s == null) { return; } //geht auch am Anfang vom Code, beispielsweise 3-4 Fehler prüfen und dann den logischen Code
         */
        //}


        //Auf boolean setzen für UnitTests
        public bool AddSchueler(Schueler s)
        {
            if (s == null)
            {
                return(false);
            }

            if (s.Klasse == null && Schule.FindSchuelerById(s.Id) != null)
            {
                return(false);
            }

            if (Schueler.Count < 5)
            {
                Schueler.Add(s);
                s.Klasse?.Schueler.Remove(s);
                s.Klasse = this;
                return(true);
            }
            return(false);
        }
 public bool AddSchueler(Schueler s)
 {
     if (s == null)
     {
         return(false);
     }
     if (s.Klasse == null &&
         Schule.FindSchuelerById(s.Id) != null)
     {
         return(false);
     }
     if (Schueler.Count < 5)
     {
         Schueler.Add(s);
         /* NICHT VERGESSEN, sonst bleibt die Rückreferenz NULL!! */
         s.Klasse?.Schueler.Remove(s);
         s.Klasse = this;
         return(true);
     }
     return(false);
 }