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));
        }
Ejemplo n.º 2
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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();
                    }
                }
            }
        }