public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (ReferenceEquals(obj, this))
            {
                return(true);
            }

            if (obj.GetType() != GetType())
            {
                return(false);
            }

            Person person = (Person)obj;

            return(Rolle.Equals(person.Rolle) &&
                   Vorname.Equals(person.Vorname) &&
                   Nachname.Equals(person.Nachname) &&
                   Adresse.Equals(person.Adresse) &&
                   Geburtsdatum.Equals(person.Geburtsdatum));
        }
        public override bool Equals(object obj)
        {
            // Anforderungen:

            /* Gleicher Typ ?
             * Eines null ?
             * Referenzvergleich
             * Wertevergleich falls Referenzvergleich fehlschlägt
             */

            if (obj is null)
            {
                throw new ArgumentNullException();
            }

            if (obj is Person p) // obj.GetType() == typeof(Person)
            {
                //Referenzvergleich
                if (obj == this)
                {
                    return(true);
                }
                else // Referenzen nicht gleich, stattdessen werte vergleichen
                {   // "Hässliche" Variante ohne GetHashcode();
                    return(Vorname.Equals(p.Vorname) &&
                           Nachname.Equals(p.Nachname) &&
                           Alter.Equals(p.Alter) &&
                           Kontostand.Equals(p.Kontostand));
                }
            }
            else
            {
                return(false);
            }
        }
Beispiel #3
0
        public override int GetHashCode()
        {
            int result = Vorname.GetHashCode();

            result = 31 * result + Nachname.GetHashCode();
            result = 31 * result + Geburtstag.GetHashCode();
            return(result);
        }
Beispiel #4
0
        public override int GetHashCode()
        {   // easy-Variante
            int hashcode = 0;

            hashcode += Vorname.GetHashCode();
            hashcode += Nachname.GetHashCode();
            hashcode += Alter;
            hashcode += Convert.ToInt32(Kontostand);

            return(hashcode);
        }
Beispiel #5
0
        public string this[string columnName]
        {
            get
            {
                switch (columnName)
                {
                case nameof(Vorname):
                    if (Vorname.Length <= 0 || Vorname.Length > 50)
                    {
                        return("Bitte geben Sie ihren Vornamen ein!");
                    }
                    if (!Vorname.All(x => char.IsLetter(x)))
                    {
                        return("Der Vorname darf nur Buchstaben enthalten!");
                    }
                    break;

                case nameof(Nachname):
                    if (Nachname.Length <= 0 || Vorname.Length > 50)
                    {
                        return("Bitte geben Sie ihren Nachnamen ein!");
                    }
                    if (!Nachname.All(x => char.IsLetter(x)))
                    {
                        return("Der Nachname darf nur Buchstaben enthalten!");
                    }
                    break;

                case nameof(Geburtsdatum):
                    if (Geburtsdatum > DateTime.Now)
                    {
                        return("Das Geburtsdatum darf nicht in der Zukunft liegen!");
                    }
                    if (DateTime.Now.Year - Geburtsdatum.Year > 150)
                    {
                        return("Das Geburtsdatum darf nicht mehr als 150 Jahre in der Vergangenheit liegen!");
                    }
                    break;

                case nameof(Lieblingsfarbe):
                    if (Lieblingsfarbe.ToString().Equals("#00000000"))
                    {
                        return("Wähle eine Farbe aus!");
                    }
                    break;

                default:
                    break;
                }
                return("");
            }
        }
Beispiel #6
0
        public string this[string columnName]
        {
            get
            {
                switch (columnName)
                {
                case nameof(Vorname):
                    if (Vorname.Length <= 0 || Vorname.Length > 50)
                    {
                        return("Bitte geben Sie den Vornamen ein");
                    }
                    if (!Vorname.All(char.IsLetter))
                    {
                        return("Der Vorname darf nur Buchstaben enthalten");
                    }
                    break;

                case nameof(Nachname):
                    if (Nachname.Length <= 0 || Nachname.Length > 50)
                    {
                        return("Bitte geben Sie den Nachnamen ein");
                    }
                    if (!Nachname.All(char.IsLetter))
                    {
                        return("Der Nachname darf nur Buchstaben enthalten");
                    }
                    break;

                case nameof(Geburtsdatum):
                    if (Geburtsdatum > DateTime.Now)
                    {
                        return("Das Geburtsdatum darf nicht in der Zukunft liegen");
                    }
                    if (DateTime.Now.Year - Geburtsdatum.Year > 150)
                    {
                        return("Das Geburtsdatum darf nicht mehr als 150 Jahre in der Vergangenheit liegen");
                    }
                    break;

                default:
                    break;
                }
                return("");
            }
        }
        /// <summary>
        /// Fügt der Liste MainViewModel.Personen hinzu
        /// Speichert diese Werte in Datei
        /// </summary>
        private void Speichern()
        {
            // Validierung, weil wir finden, dass sonst ein Eintrag keinen Sinn macht und kein Anwendungszweck besitzt.
            if (String.IsNullOrWhiteSpace(Vorname) || String.IsNullOrWhiteSpace(Nachname))
            {
                MessageBox.Show("Vorname und Nachname sind Pflichtfelder!");
                return;
            }

            ObservableCollection <Person> personen = _mainViewModel.Personen;
            // Auslesen aus der Form, Person der Liste hinzufügen
            Person neuePerson = new Person(Vorname.Trim(), Nachname.Trim(), new Adresse(Plz.Trim(), Ort.Trim(), Strasse.Trim()));

            // Person zur Liste hinzufügen
            personen.Add(neuePerson);

            _csvController.fuegeZurDateiHinzu(neuePerson);

            FormReset();
        }
        public int CompareTo(object obj)
        {
            if (obj == null || obj.GetType() != GetType())
            {
                return(-1);
            }

            Person person = (Person)obj;

            int rolleEqualRate = Rolle.CompareTo(person.Rolle);

            if (rolleEqualRate < 0 || rolleEqualRate > 0)
            {
                return(rolleEqualRate);
            }

            int vornameEqualRate = Vorname.CompareTo(person.Vorname);

            if (vornameEqualRate < 0 || vornameEqualRate > 0)
            {
                return(vornameEqualRate);
            }

            int nachnameEqualRate = Nachname.CompareTo(person.Nachname);

            if (nachnameEqualRate < 0 || nachnameEqualRate > 0)
            {
                return(nachnameEqualRate);
            }

            int geburtsdatumEqualRate = Geburtsdatum.CompareTo(person.Geburtsdatum);

            switch (geburtsdatumEqualRate)
            {
            case 0:
                return(Adresse.CompareTo(person.Adresse));

            default:
                return(geburtsdatumEqualRate);
            }
        }
Beispiel #9
0
        public override bool Equals(object obj)
        {
            if (this == obj)
            {
                return(true);
            }
            if (obj == null || GetType() != obj.GetType())
            {
                return(false);
            }

            Person person = (Person)obj;

            if (!Vorname.Equals(person.Vorname))
            {
                return(false);
            }
            if (!Nachname.Equals(person.Nachname))
            {
                return(false);
            }
            return(Geburtstag.Equals(person.Geburtstag));
        }
Beispiel #10
0
 public string FullName()
 {
     return($"{Vorname.Trim(' ')} {Nachname.Trim(' ')}");
 }