Refactor User and UserDto to inherit from UserBase

- Aktualisierte `User` und `UserDto` Klassen um von einer neuen `UserBase` Klasse zu erben.
- Verschieben der Eigenschaften `Vorname`, `Email` und `Alter` zu `UserBase`.
- Implementierung der überschriebenen Methoden `GetHashCode` und `Equals` sowohl in `User` als auch in `UserDto`, um die Eigenschaften der Basisklasse zu nutzen.
This commit is contained in:
Developer 02 2025-04-17 17:36:07 +02:00
parent 3a604ede88
commit e3b9d2971b
3 changed files with 20 additions and 11 deletions

View File

@ -1,12 +1,12 @@
namespace DigitalData.Core.Tests.Mock;
public class User
public class User : UserBase
{
public required int Id { get; init; }
public required string FirstName { get; init; }
public override int GetHashCode() => HashCode.Combine(Id, FirstName, Email, Age);
public required string Email { get; init; }
public int Age { get; init; }
public override bool Equals(object? obj)
=> (obj is User user && user.GetHashCode() == GetHashCode())
|| (obj is UserBase userBase && userBase.GetHashCode() == base.GetHashCode());
}

View File

@ -0,0 +1,14 @@
namespace DigitalData.Core.Tests.Mock;
public class UserBase
{
public required string FirstName { get; init; }
public required string Email { get; init; }
public required int Age { get; init; }
public override int GetHashCode() => HashCode.Combine(FirstName, Email, Age);
public override bool Equals(object? obj) => obj is UserBase user && user.GetHashCode() == GetHashCode();
}

View File

@ -1,10 +1,5 @@
namespace DigitalData.Core.Tests.Mock;
public class UserDto
public class UserDto : UserBase
{
public required string FirstName { get; init; }
public required string Email { get; init; }
public int Age { get; init; }
}