public async Task <ActionResult <UserModel> > Post(UserModel userModel) { if (!ModelState.IsValid) // Is automatically done by the [ApiController] controller attribute { return(BadRequest(ModelState)); } if (await _umService.IsEmailInUseAsync(userModel.Email)) { ModelState.AddModelError("Email", "Email already in use."); return(BadRequest(ModelState)); } ApplicationUser user = _mapper.Map <ApplicationUser>(userModel); user.EmailConfirmed = true; user.UserName = userModel.Email; IdentityResult result = await _umService.AddUserAsync(user, userModel.Password, userModel.Role); return(CreatedAtAction(nameof(Get), new { id = user.Id }, user)); }
private static void InitializeDatabase(IWebHost host) { using (var serviceScope = host.Services.CreateScope()) { var services = serviceScope.ServiceProvider; if (!services.GetService <ApplicationDbContext>().AllMigrationsApplied()) { services.GetService <ApplicationDbContext>().Database.Migrate(); } // Seed database serviceScope.ServiceProvider.GetService <ApplicationDbContext>().EnsureSeeded(); IUserManagementService umService = services.GetRequiredService <IUserManagementService>(); var usersCount = umService.GetAllUsersCountAsync("").Result; if (usersCount == 0) { RoleManager <IdentityRole> roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); foreach (RolePair role in RoleHelpers.Roles) { if (!roleManager.RoleExistsAsync(role.Name).Result) { var idRole = new IdentityRole(role.Name); roleManager.CreateAsync(idRole).Wait(); } } // Create admin user ApplicationUser adminUser = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "AdminFirst", LastName = "AdminLast", EmailConfirmed = true, Approved = true }; umService.AddUserAsync(adminUser, "admin", "administrator").Wait(); // username = "******", password = "******" UserManager <ApplicationUser> userManager = services.GetRequiredService <UserManager <ApplicationUser> >(); userManager.AddToRoleAsync(adminUser, "user").Wait(); ApplicationUser supervisorUser = new ApplicationUser { UserName = "******", Email = "*****@*****.**", FirstName = "SupervisorFirst", LastName = "SupervisorLast", EmailConfirmed = true, Approved = true }; umService.AddUserAsync(supervisorUser, "supervisor", "supervisor").Wait(); ApplicationUser userUser = new ApplicationUser(); // Create users for (int i = 1; i < 125; i++) { userUser = new ApplicationUser { UserName = "******" + i + "@domain.com", Email = "user" + i + "@domain.com", FirstName = "USER" + i + "FIRST", LastName = "USER" + i + "LAST", EmailConfirmed = true, Approved = true }; umService.AddUserAsync(userUser, "user", "user").Wait(); } } } }
private static void InitializeDatabase(IWebHost host) { using (var serviceScope = host.Services.CreateScope()) { var services = serviceScope.ServiceProvider; if (!services.GetService <ApplicationDbContext>().AllMigrationsApplied()) { services.GetService <ApplicationDbContext>().Database.Migrate(); } IUserManagementService userManager = services.GetRequiredService <IUserManagementService>(); var usersCount = userManager.GetAllUsersCountAsync("").Result; if (usersCount == 0) { RoleManager <IdentityRole> roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); foreach (RolePair role in RoleHelpers.Roles) { if (!roleManager.RoleExistsAsync(role.Name).Result) { var idRole = new IdentityRole(role.Name); roleManager.CreateAsync(idRole).Wait(); } } // Create admin user ApplicationUser adminUser = new ApplicationUser(); adminUser.UserName = "******"; adminUser.Email = "*****@*****.**"; adminUser.FirstName = "AdminFirst"; adminUser.LastName = "AdminLast"; adminUser.EmailConfirmed = true; adminUser.Approved = true; userManager.AddUserAsync(adminUser, "admin", "admin").Wait(); // username = "******", password = "******" ApplicationUser employeeUser = new ApplicationUser(); employeeUser.UserName = "******"; employeeUser.Email = "*****@*****.**"; employeeUser.FirstName = "EmployeeFirst"; employeeUser.LastName = "EmployeeLast"; employeeUser.EmailConfirmed = true; employeeUser.Approved = true; userManager.AddUserAsync(employeeUser, "employee", "employee").Wait(); var userItem = new ApplicationUser(); // Create 5 users for (int i = 1; i < 25; i++) { userItem = new ApplicationUser(); userItem.UserName = "******" + i + "@domain.com"; userItem.Email = "user" + i + "@domain.com"; userItem.FirstName = "USER" + i + "FIRST"; userItem.LastName = "USER" + i + "LAST"; userItem.EmailConfirmed = true; userItem.Approved = true; userManager.AddUserAsync(userItem, "user", "Applicant").Wait(); } } } }