using Microsoft.AspNetCore.Identity; using Wishlist.Data.DB; namespace Wishlist.Models; public class ApplicationUser : IdentityUser { DatabaseModel _database; public ApplicationUser(DatabaseModel database) { _database = database; Id = Guid.NewGuid().ToString(); } public User User { get; set; } = new(); //public string Name { get; set; } => string.Empty; //public string GivenName { get; set; } = String.Empty; //public string Surname { get; set; } = String.Empty; public string Name { get => User.Name ?? string.Empty; set => User.Name = value; } public string GivenName { get => User.GivenName ?? string.Empty; set => User.GivenName = value; } public string Surname { get => User.Surname ?? string.Empty; set => User.Surname = value; } public virtual ICollection Claims { get; set; } public virtual ICollection Logins { get; set; } public virtual ICollection Tokens { get; set; } public virtual ICollection UserRoles { get; set; } public async Task SaveToDb() => await _database.Users.InsertAsync(User); } public class ApplicationRole : IdentityRole { public ApplicationRole() { Id = Guid.NewGuid().ToString(); } public override string Id { get; set; } public string Description { get; set; } public virtual ICollection UserRoles { get; set; } public virtual ICollection RoleClaims { get; set; } } public class ApplicationUserRole : IdentityUserRole { public virtual ApplicationUser User { get; set; } public virtual ApplicationRole Role { get; set; } } public class ApplicationUserClaim : IdentityUserClaim { public virtual ApplicationUser User { get; set; } } public class ApplicationUserLogin : IdentityUserLogin { public virtual ApplicationUser User { get; set; } } public class ApplicationRoleClaim : IdentityRoleClaim { public virtual ApplicationRole Role { get; set; } } public class ApplicationUserToken : IdentityUserToken { public virtual ApplicationUser User { get; set; } }