public static async Task AddAdminRoleandUsers(IServiceProvider serviceProvider, IOptions <InitialConfigurationData> options) { UserManager <ApplicationUser> userManager = serviceProvider.GetRequiredService <UserManager <ApplicationUser> >(); RoleManager <IdentityRole> roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); InitialConfigurationData data = options.Value; Console.WriteLine($"Role count -> {data.Roles.Length}"); Console.WriteLine($"User count -> {data.Users.Length}"); foreach (var role in data.Roles) { if (await roleManager.FindByNameAsync(role) == null) { await roleManager.CreateAsync(new IdentityRole(role)); } } foreach (var user in data.Users) { System.Console.WriteLine(user.Name + "will be searched in DB"); if (await userManager.FindByNameAsync(user.Name) == null) { System.Console.WriteLine(user.Name + "will be created"); foreach (var role in user.Roles) { if (await roleManager.FindByNameAsync(role) == null) { await roleManager.CreateAsync(new IdentityRole(role)); } } ApplicationUser newUser = new ApplicationUser { UserName = user.Name, Email = user.Email }; IdentityResult result = await userManager.CreateAsync(newUser, user.Password); if (result.Succeeded) { System.Console.WriteLine("user was successfully created"); foreach (var role in user.Roles) { System.Console.WriteLine("Adding new role"); await userManager.AddToRoleAsync(newUser, role); } } } } }
public static async Task AddAdminRoleandUsers(this AppDbContext context, IServiceProvider serviceProvider, IOptions <InitialConfigurationData> options) { UserManager <ApplicationUser> userManager = serviceProvider.GetRequiredService <UserManager <ApplicationUser> >(); RoleManager <IdentityRole> roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); InitialConfigurationData data = options.Value; foreach (var role in data.Roles) { if (await roleManager.FindByNameAsync(role) == null) { await roleManager.CreateAsync(new IdentityRole(role)); } } foreach (var user in data.Users) { if (await userManager.FindByNameAsync(user.Name) == null) { foreach (var role in user.Roles) { if (await roleManager.FindByNameAsync(role) == null) { await roleManager.CreateAsync(new IdentityRole(role)); } } ApplicationUser newUser = new ApplicationUser { UserName = user.Name, Email = user.Email }; IdentityResult result = await userManager.CreateAsync(newUser, user.Password); if (result.Succeeded) { foreach (var role in user.Roles) { await userManager.AddToRoleAsync(newUser, role); } } } } }