public object Clone()
        {
            Adresse   adresse   = (Adresse)Adresse.Clone();
            Abschluss abschluss = (Abschluss)Abschluss.Clone();

            return(new Dozent(Vorname, Nachname, adresse, Geburtsdatum, abschluss));
        }
        private bool HasChanged()
        {
            Person person         = null;
            Person selectedPerson = (Person)lv_person.SelectedItem;

            if (selectedPerson != null)
            {
                Adresse   adresse   = new Adresse(tb_strasse.Text, tb_hausnummer.Text, tb_postleitzahl.Text, tb_ort.Text);
                Abschluss abschluss = new Abschluss(tb_abschluss.Text);

                switch (cb_rolle.SelectedItem)
                {
                case Rolle.Dozent:
                    Dozent dozent = new Dozent(tb_vorname.Text, tb_nachname.Text, adresse, dp_geburtsdatum.Text, abschluss);
                    person = dozent;
                    break;

                case Rolle.Student:
                    Student student = new Student(tb_vorname.Text, tb_nachname.Text, adresse, dp_geburtsdatum.Text, tb_matrikelnummer.Text, tb_ects.Text);
                    person = student;
                    break;
                }

                return(!person.Equals(selectedPerson));
            }
            else
            {
                return(true);
            }
        }
        public object Clone()
        {
            Abschluss     abschluss     = (Abschluss)Abschluss.Clone();
            SemesterListe semesterListe = (SemesterListe)SemesterListe.Clone();
            PersonListe   studentListe  = (PersonListe)StudentListe.Clone();

            return(new Studiengang(Name, abschluss, ECTS, semesterListe, studentListe));
        }
 public Studiengang(string name, Abschluss abschluss, int ects, SemesterListe semesterListe, PersonListe studentListe)
 {
     Name          = name;
     Abschluss     = abschluss;
     ECTS          = ects;
     SemesterListe = semesterListe;
     StudentListe  = studentListe;
 }
        public Studiengang(string name, Abschluss abschluss, string ects, SemesterListe semesterListe, PersonListe studentListe)
        {
            Name      = name;
            Abschluss = abschluss;

            if (int.TryParse(ects, out int result))
            {
                ECTS = int.Parse(ects);
            }

            SemesterListe = semesterListe;
            StudentListe  = studentListe;
        }
        private void btn_save_Click(object sender, RoutedEventArgs e)
        {
            Person newPerson = null;

            Rolle     rolle          = (Rolle)cb_rolle.SelectedItem;
            string    vorname        = tb_vorname.Text;
            string    nachname       = tb_nachname.Text;
            string    strasse        = tb_strasse.Text;
            string    hausnummer     = tb_hausnummer.Text;
            string    postleitzahl   = tb_postleitzahl.Text;
            string    ort            = tb_ort.Text;
            Adresse   adresse        = new Adresse(strasse, hausnummer, tb_postleitzahl.Text, tb_ort.Text);
            string    geburtstag     = dp_geburtsdatum.Text;
            Abschluss abschluss      = new Abschluss(tb_abschluss.Text);
            string    matrikelnummer = tb_matrikelnummer.Text;
            string    ects           = tb_ects.Text;

            switch (rolle)
            {
            case Rolle.Dozent:
                Dozent dozent = new Dozent(vorname, nachname, adresse, geburtstag, abschluss);
                newPerson = dozent;
                break;

            case Rolle.Student:
                Student student = new Student(vorname, nachname, adresse, geburtstag, matrikelnummer, ects);
                newPerson = student;
                break;
            }

            if (lv_person.SelectedItem is Person selectedPerson)
            {
                Person existingPerson = PersonListe.Instance.Where(x => x.Equals(selectedPerson)).Single();
                existingPerson.Update(newPerson);

                lv_person.SelectedItem = newPerson;
            }
            else if (!IsDuplicate(newPerson))
            {
                PersonListe.Instance.Add(newPerson);
                lv_person.SelectedItem = newPerson;
            }
        }
 public Dozent(string vorname, string nachname, Adresse adresse, string geburtsdatum, Abschluss abschluss)
     : base(Rolle.Dozent, vorname, nachname, adresse, geburtsdatum)
 {
     Abschluss = abschluss;
 }