private static async Task CreateAdminAccountAsync(IServiceProvider serviceProvider, IConfiguration configuration) { serviceProvider = serviceProvider.CreateScope().ServiceProvider; IWorkshopUserRepository _userManager = serviceProvider.GetRequiredService <IWorkshopUserRepository>(); IWorkshopRoleRepository _roleManager = serviceProvider.GetRequiredService <IWorkshopRoleRepository>(); IdentityContext _IdentityDbContext = serviceProvider.GetRequiredService <IdentityContext>(); _IdentityDbContext.Database.Migrate(); string firstName = configuration.GetValue("Admin:AdminUser:FirstName", "Admin"); string lastName = configuration.GetValue("Admin:AdminUser:LastName", "Admin"); string userName = configuration.GetValue("Admin:AdminUser:UserName", "Admin"); string email = configuration.GetValue("Admin:AdminUser:Email", "*****@*****.**"); string password = configuration.GetValue("Admin:AdminUser:Password", "Pa$$w0rd"); string role = "Admin"; if (await _roleManager.FindByNameAsync(role) == null) { IdentityResult result = await _roleManager.CreateAsync(new IdentityRole { Name = role }); if (!result.Succeeded) { throw new Exception("Admin error"); } } if ((await _userManager.GetUsersInRoleAsync(role)).Count < 1) { IdentityResult result; User user = await _userManager.FindByNameAsync(userName); if (user == null) { user = new User { FirstName = firstName, LastName = lastName, UserName = userName, Email = email }; result = await _userManager.CreateAsync(user, password); if (!result.Succeeded) { throw new Exception("Admin error"); } } _userManager.RecoverUser(userName); await _userManager.AddToRoleAsync(user, role); } }
public UserController(IWorkshopUserRepository userManager, IWorkshopRoleRepository roleManager) { _userManager = userManager; _roleManager = roleManager; }
public RoleController(IWorkshopRoleRepository roleRepo, IWorkshopUserRepository userRepo) { _roleManager = roleRepo; _userManager = userRepo; }