コード例 #1
0
        public async Task <ActionResult <GetUsersManagementViewModel> > CreateAsync([FromBody] CreateUsersManagementViewModel model)
        {
            var userModifier = User.Identity.GetUser();

            var result = await _usersManagementService.CreateAsync(userModifier.Id, model);

            return(CreatedItem($"users/{result.UserId}", result));
        }
コード例 #2
0
        public virtual async Task <GetUsersManagementViewModel> CreateAsync(Guid modifierUserId, CreateUsersManagementViewModel model)
        {
            var identityUser = await _userManager.FindByEmailAsync(model.Email);

            Require.Objects.ShouldBeNull(identityUser, "User already exists");

            var newUser = new ApplicationUser()
            {
                Email                = model.Email,
                UserName             = model.Email,
                FirstName            = model.FirstName,
                LastName             = model.LastName,
                PhoneNumber          = model.PhoneNumber,
                PhoneNumberConfirmed = !string.IsNullOrEmpty(model.PhoneNumber),
                LastPasswordChange   = DateHelper.GetUtc(),
                CreatedBy            = modifierUserId.ToString(),
                EmailConfirmed       = true
            };

            var password       = PasswordHelper.GeneratePassword(8);
            var creationResult = await _userManager.CreateAsync(newUser, password);

            Require.Booleans.IsTrue <BadRequestException>(creationResult.Succeeded, creationResult.GetErrors);

            CheckRole(model.Roles);
            var assignRoleResult = await _userManager.AddToRolesAsync(newUser, model.Roles);

            Require.Booleans.IsTrue <BadRequestException>(assignRoleResult.Succeeded, assignRoleResult.GetErrors);

            SendInvitationWithPassword(newUser, password);

            var userData = _mapper.Map <GetUsersManagementViewModel>(newUser);

            return(userData);
        }