diff --git a/src/Web/DependencyInjection.cs b/src/Web/DependencyInjection.cs index cdc4275..a6490d8 100644 --- a/src/Web/DependencyInjection.cs +++ b/src/Web/DependencyInjection.cs @@ -19,7 +19,7 @@ public static class DependencyInjection services.AddHttpContextAccessor(); services.AddHealthChecks() - .AddDbContextCheck(); + .AddDbContextCheck(); services.AddRazorPages(); diff --git a/src/Web/Features/Users/ApplicationRole.cs b/src/Web/Features/Users/ApplicationRole.cs deleted file mode 100644 index f93aa61..0000000 --- a/src/Web/Features/Users/ApplicationRole.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.AspNetCore.Identity; - -namespace Hutopy.Web.Features.Users; - -public class ApplicationRole : IdentityRole -{ - public ApplicationRole() { } - public ApplicationRole(string roleName) : base(roleName) { } -} diff --git a/src/Web/Features/Users/Data/ApplicationDbContext.cs b/src/Web/Features/Users/Data/IdentityDbContext.cs similarity index 69% rename from src/Web/Features/Users/Data/ApplicationDbContext.cs rename to src/Web/Features/Users/Data/IdentityDbContext.cs index 51a9146..c7a5d42 100644 --- a/src/Web/Features/Users/Data/ApplicationDbContext.cs +++ b/src/Web/Features/Users/Data/IdentityDbContext.cs @@ -2,9 +2,9 @@ namespace Hutopy.Web.Features.Users.Data { - public class ApplicationDbContext( - DbContextOptions options) - : IdentityDbContext(options) + public class IdentityDbContext( + DbContextOptions options) + : IdentityDbContext(options) { public const string SchemaName = "Identity"; protected override void OnModelCreating(ModelBuilder diff --git a/src/Web/Features/Users/Data/ApplicationDbContextInitializer.cs b/src/Web/Features/Users/Data/IdentityDbContextInitializer.cs similarity index 73% rename from src/Web/Features/Users/Data/ApplicationDbContextInitializer.cs rename to src/Web/Features/Users/Data/IdentityDbContextInitializer.cs index acca6cb..5be1dcf 100644 --- a/src/Web/Features/Users/Data/ApplicationDbContextInitializer.cs +++ b/src/Web/Features/Users/Data/IdentityDbContextInitializer.cs @@ -4,11 +4,11 @@ namespace Hutopy.Web.Features.Users.Data; public static class InitializerExtensions { - public static async Task InitialiseApplicationDatabaseAsync(this WebApplication app) + public static async Task InitialiseIdentityDatabaseAsync(this WebApplication app) { using var scope = app.Services.CreateScope(); - var initializer = scope.ServiceProvider.GetRequiredService(); + var initializer = scope.ServiceProvider.GetRequiredService(); await initializer.InitialiseAsync(); @@ -16,10 +16,10 @@ public static class InitializerExtensions } } -public class ApplicationDbContextInitializer( - ILogger logger, - ApplicationDbContext context, - RoleManager roleManager) +public class IdentityDbContextInitializer( + ILogger logger, + IdentityDbContext context, + RoleManager roleManager) { public async Task InitialiseAsync() { @@ -49,13 +49,13 @@ public class ApplicationDbContextInitializer( private async Task TrySeedAsync() { - var administratorRole = new ApplicationRole(KnownRoles.Administrator); + var administratorRole = new IdentityRole(KnownRoles.Administrator); if (roleManager.Roles.All(r => r.Name != administratorRole.Name)) { await roleManager.CreateAsync(administratorRole); } - var roleCreator = new ApplicationRole(KnownRoles.Creator); + var roleCreator = new IdentityRole(KnownRoles.Creator); if (roleManager.Roles.All(r => r.Name != roleCreator.Name)) { await roleManager.CreateAsync(roleCreator); diff --git a/src/Web/Features/Users/Data/Migrations/20241020183421_Initial.Designer.cs b/src/Web/Features/Users/Data/Migrations/20241020183421_Initial.Designer.cs index 166eaf8..1770d40 100644 --- a/src/Web/Features/Users/Data/Migrations/20241020183421_Initial.Designer.cs +++ b/src/Web/Features/Users/Data/Migrations/20241020183421_Initial.Designer.cs @@ -11,7 +11,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Hutopy.Web.Features.Users.Data.Migrations { - [DbContext(typeof(ApplicationDbContext))] + [DbContext(typeof(IdentityDbContext))] [Migration("20241020183421_Initial")] partial class Initial { @@ -26,7 +26,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("Hutopy.Web.Features.Users.ApplicationRole", b => + modelBuilder.Entity("Hutopy.Web.Features.Users.IdentityRole", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -53,7 +53,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations b.ToTable("AspNetRoles", "Identity"); }); - modelBuilder.Entity("Hutopy.Web.Features.Users.ApplicationUser", b => + modelBuilder.Entity("Hutopy.Web.Features.Users.IdentityUser", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -250,7 +250,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationRole", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) @@ -259,7 +259,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -268,7 +268,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -277,13 +277,13 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationRole", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -292,7 +292,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) diff --git a/src/Web/Features/Users/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/src/Web/Features/Users/Data/Migrations/ApplicationDbContextModelSnapshot.cs index ac105e1..0e94432 100644 --- a/src/Web/Features/Users/Data/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/src/Web/Features/Users/Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Hutopy.Web.Features.Users.Data.Migrations { - [DbContext(typeof(ApplicationDbContext))] + [DbContext(typeof(IdentityDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) @@ -23,7 +23,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("Hutopy.Web.Features.Users.ApplicationRole", b => + modelBuilder.Entity("Hutopy.Web.Features.Users.IdentityRole", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -50,7 +50,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations b.ToTable("AspNetRoles", "Identity"); }); - modelBuilder.Entity("Hutopy.Web.Features.Users.ApplicationUser", b => + modelBuilder.Entity("Hutopy.Web.Features.Users.IdentityUser", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -247,7 +247,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationRole", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) @@ -256,7 +256,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -265,7 +265,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -274,13 +274,13 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationRole", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) @@ -289,7 +289,7 @@ namespace Hutopy.Web.Features.Users.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { - b.HasOne("Hutopy.Web.Features.Users.ApplicationUser", null) + b.HasOne("Hutopy.Web.Features.Users.IdentityUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) diff --git a/src/Web/Features/Users/DependencyInjection.cs b/src/Web/Features/Users/DependencyInjection.cs index 8444036..0d1bd0c 100644 --- a/src/Web/Features/Users/DependencyInjection.cs +++ b/src/Web/Features/Users/DependencyInjection.cs @@ -14,8 +14,8 @@ public static class DependencyInjection services.AddDbContext(configureAction); services.AddScoped(); - services.AddDbContext(configureAction); - services.AddScoped(); + services.AddDbContext(configureAction); + services.AddScoped(); services.AddAuthentication() .AddBearerToken(IdentityConstants.BearerScheme); @@ -23,12 +23,12 @@ public static class DependencyInjection services.AddAuthorizationBuilder(); services - .AddIdentityCore() - .AddUserManager() - .AddRoles() - .AddEntityFrameworkStores() + .AddIdentityCore() + .AddUserManager() + .AddRoles() + .AddEntityFrameworkStores() .AddApiEndpoints() - .AddSignInManager>() + .AddSignInManager>() .AddDefaultTokenProviders(); // Singleton services diff --git a/src/Web/Features/Users/Handlers/ChangeAddress.cs b/src/Web/Features/Users/Handlers/ChangeAddress.cs index 04b79fe..a8ebc1d 100644 --- a/src/Web/Features/Users/Handlers/ChangeAddress.cs +++ b/src/Web/Features/Users/Handlers/ChangeAddress.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -9,7 +8,7 @@ public record ChangeAddressRequest( [PublicAPI] public class ChangeAddressHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangeAlias.cs b/src/Web/Features/Users/Handlers/ChangeAlias.cs index 571a5ae..320a285 100644 --- a/src/Web/Features/Users/Handlers/ChangeAlias.cs +++ b/src/Web/Features/Users/Handlers/ChangeAlias.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -9,7 +8,7 @@ public record ChangeAliasRequest( [PublicAPI] public class ChangeAliasHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangeBirthDate.cs b/src/Web/Features/Users/Handlers/ChangeBirthDate.cs index 7b571b5..4800321 100644 --- a/src/Web/Features/Users/Handlers/ChangeBirthDate.cs +++ b/src/Web/Features/Users/Handlers/ChangeBirthDate.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -9,7 +8,7 @@ public record ChangeBirthDateRequest( [PublicAPI] public class ChangeBirthDateHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangeEmail.cs b/src/Web/Features/Users/Handlers/ChangeEmail.cs index dc9037c..64b8286 100644 --- a/src/Web/Features/Users/Handlers/ChangeEmail.cs +++ b/src/Web/Features/Users/Handlers/ChangeEmail.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -9,7 +8,7 @@ public record ChangeEmailRequest( [PublicAPI] public class ChangeEmailHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangeFullname.cs b/src/Web/Features/Users/Handlers/ChangeFullname.cs index d46cdf5..d130a0c 100644 --- a/src/Web/Features/Users/Handlers/ChangeFullname.cs +++ b/src/Web/Features/Users/Handlers/ChangeFullname.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -10,7 +9,7 @@ public record ChangeFullnameRequest( [PublicAPI] public class ChangeFullnameHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangePhone.cs b/src/Web/Features/Users/Handlers/ChangePhone.cs index 79726fb..e13d1d2 100644 --- a/src/Web/Features/Users/Handlers/ChangePhone.cs +++ b/src/Web/Features/Users/Handlers/ChangePhone.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.Security; +using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -9,7 +8,7 @@ public record ChangePhoneRequest( [PublicAPI] public class ChangePhoneHandler( - ApplicationUserManager userManager) + IdentityUserManager userManager) : Endpoint { public override void Configure() diff --git a/src/Web/Features/Users/Handlers/ChangePortrait.cs b/src/Web/Features/Users/Handlers/ChangePortrait.cs index 81b44d9..31b90d1 100644 --- a/src/Web/Features/Users/Handlers/ChangePortrait.cs +++ b/src/Web/Features/Users/Handlers/ChangePortrait.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Common; -using Hutopy.Web.Common.BlobStorage; +using Hutopy.Web.Common.BlobStorage; using Hutopy.Web.Common.Security; namespace Hutopy.Web.Features.Users.Handlers; @@ -25,7 +24,7 @@ public sealed class ChangePortraitRequestValidator : Validator { diff --git a/src/Web/Features/Users/Handlers/LoginWithGoogle.cs b/src/Web/Features/Users/Handlers/LoginWithGoogle.cs index 29c2ded..dfd389c 100644 --- a/src/Web/Features/Users/Handlers/LoginWithGoogle.cs +++ b/src/Web/Features/Users/Handlers/LoginWithGoogle.cs @@ -39,8 +39,8 @@ public record LoginWithGoogleResponse( [PublicAPI] public class LoginWithGoogleHandler( IHttpClientFactory httpClientFactory, - ApplicationUserManager userManager, - SignInManager signInManager, + IdentityUserManager userManager, + SignInManager signInManager, IOptionsSnapshot jwtOptions) : Endpoint { @@ -91,7 +91,7 @@ public class LoginWithGoogleHandler( if (user is null) { var generatedPassword = PasswordGenerator.GeneratePassword(10, 12); - var generatedUser = new ApplicationUser + var generatedUser = new IdentityUser { UserName = userInfo.Email, Email = userInfo.Email, diff --git a/src/Web/Features/Users/IdentityRole.cs b/src/Web/Features/Users/IdentityRole.cs new file mode 100644 index 0000000..d5e68f1 --- /dev/null +++ b/src/Web/Features/Users/IdentityRole.cs @@ -0,0 +1,9 @@ +using Microsoft.AspNetCore.Identity; + +namespace Hutopy.Web.Features.Users; + +public class IdentityRole : IdentityRole +{ + public IdentityRole() { } + public IdentityRole(string roleName) : base(roleName) { } +} diff --git a/src/Web/Features/Users/IdentityService.cs b/src/Web/Features/Users/IdentityService.cs index 30b7482..cc8e21b 100644 --- a/src/Web/Features/Users/IdentityService.cs +++ b/src/Web/Features/Users/IdentityService.cs @@ -4,14 +4,14 @@ using Hutopy.Web.Features.Users.Models; namespace Hutopy.Web.Features.Users; public class IdentityService( - ApplicationUserManager userManager, + IdentityUserManager userManager, IHttpContextAccessor contextAccessor ) { public async Task> CreateUserAsync(string email, string userName, string firstName, string lastName, string password) { - var applicationUser = new ApplicationUser + var applicationUser = new IdentityUser { UserName = userName, Email = email, Firstname = firstName, Lastname = lastName }; @@ -28,7 +28,7 @@ public class IdentityService( return result; } - private static UserModel BuildModelFrom(ApplicationUser response) + private static UserModel BuildModelFrom(IdentityUser response) { var userModel = new UserModel { diff --git a/src/Web/Features/Users/ApplicationUser.cs b/src/Web/Features/Users/IdentityUser.cs similarity index 91% rename from src/Web/Features/Users/ApplicationUser.cs rename to src/Web/Features/Users/IdentityUser.cs index e3eea1e..e648674 100644 --- a/src/Web/Features/Users/ApplicationUser.cs +++ b/src/Web/Features/Users/IdentityUser.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Identity; namespace Hutopy.Web.Features.Users; -public class ApplicationUser : IdentityUser +public class IdentityUser : IdentityUser { [MaxLength(255)] public string? Alias { get; set; } [MaxLength(255)] public string? Firstname { get; set; } diff --git a/src/Web/Features/Users/ApplicationUserManager.cs b/src/Web/Features/Users/IdentityUserManager.cs similarity index 55% rename from src/Web/Features/Users/ApplicationUserManager.cs rename to src/Web/Features/Users/IdentityUserManager.cs index 8c7a234..e74ed46 100644 --- a/src/Web/Features/Users/ApplicationUserManager.cs +++ b/src/Web/Features/Users/IdentityUserManager.cs @@ -3,17 +3,17 @@ using Microsoft.Extensions.Options; namespace Hutopy.Web.Features.Users; -public sealed class ApplicationUserManager( - IUserStore store, +public sealed class IdentityUserManager( + IUserStore store, IOptions optionsAccessor, - IPasswordHasher passwordHasher, - IEnumerable> userValidators, - IEnumerable> passwordValidators, + IPasswordHasher passwordHasher, + IEnumerable> userValidators, + IEnumerable> passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, - ILogger> logger) - : UserManager( + ILogger> logger) + : UserManager( store, optionsAccessor, passwordHasher, diff --git a/src/Web/Pages/Shared/_LoginPartial.cshtml b/src/Web/Pages/Shared/_LoginPartial.cshtml index a347682..ab55a54 100644 --- a/src/Web/Pages/Shared/_LoginPartial.cshtml +++ b/src/Web/Pages/Shared/_LoginPartial.cshtml @@ -1,7 +1,8 @@ @using Hutopy.Web.Features.Users @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.Mvc.TagHelpers -@inject SignInManager SignInManager +@using IdentityUser = Hutopy.Web.Features.Users.IdentityUser +@inject SignInManager SignInManager @{ string? returnUrl = null; diff --git a/src/Web/Program.cs b/src/Web/Program.cs index 90cf35d..a709369 100644 --- a/src/Web/Program.cs +++ b/src/Web/Program.cs @@ -84,7 +84,7 @@ builder.Services.AddFastEndpoints(); builder.Services.AddUsersModule(options => options.UseNpgsql( postgresConnectionString, - o => o.MigrationsHistoryTable("__EFMigrationsHistory", ApplicationDbContext.SchemaName))); + o => o.MigrationsHistoryTable("__EFMigrationsHistory", IdentityDbContext.SchemaName))); builder.Services.AddContentModule(options => options.UseNpgsql( postgresConnectionString, @@ -114,7 +114,7 @@ app.UseAuthentication(); app.UseAuthorization(); // Initialize and seed the db. -await app.InitialiseApplicationDatabaseAsync(); +await app.InitialiseIdentityDatabaseAsync(); await app.InitialiseContentDbContextAsync(); await app.InitialiseMessagingDbContextAsync(); await app.InitialiseMembershipDbContextAsync(); diff --git a/src/Web/TestDataSeeder.cs b/src/Web/TestDataSeeder.cs index c4655f8..ca1496c 100644 --- a/src/Web/TestDataSeeder.cs +++ b/src/Web/TestDataSeeder.cs @@ -17,7 +17,7 @@ public static class WebApplicationExtensions using var scope = app.Services.CreateScope(); var seeder = new TestDataSeeder( - scope.ServiceProvider.GetRequiredService(), + scope.ServiceProvider.GetRequiredService(), scope.ServiceProvider.GetRequiredService(), scope.ServiceProvider.GetRequiredService(), scope.ServiceProvider.GetRequiredService()); @@ -27,7 +27,7 @@ public static class WebApplicationExtensions } internal class TestDataSeeder( - ApplicationUserManager userManager, + IdentityUserManager userManager, ContentDbContext contentContext, MessagingDbContext messagingContext, MembershipDbContext membershipContext) @@ -181,12 +181,12 @@ internal class TestDataSeeder( return replies; } - private async Task CreateUserAsync( + private async Task CreateUserAsync( string name, string? portraitUrl, params string[] roles) { - var user = new ApplicationUser + var user = new IdentityUser { UserName = $"{name}@test", Email = $"{name}@test", @@ -204,7 +204,7 @@ internal class TestDataSeeder( return user; } - private readonly List _users = + private readonly List _users = [ ];