Exemplo n.º 1
0
        public async Task <bool> CreateUserAsync(UserForCreate userForCreate)
        {
            try
            {
                var user   = _mapper.Map <User>(userForCreate);
                var result = await _userManager.CreateAsync(user, userForCreate.Password);

                if (!result.Succeeded)
                {
                    return(false);
                }

                user = await _userManager.FindByNameAsync(user.UserName);

                result = await _userManager.AddToRoleAsync(user, Constants.USER_ROLE);

                if (!result.Succeeded)
                {
                    await DeleteUserAsync(user.Id);

                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateUser([FromBody] UserForCreate user)
        {
            var createdUser = await _userService.CreateUser(user).ConfigureAwait(true);

            return(CreatedAtAction(
                       actionName: nameof(GetUserById),
                       routeValues: new { userId = createdUser.UserId },
                       value: _resourceFactory.CreateUserResource(createdUser)));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> CreateUser(UserForCreate model)
        {
            var email = model.Email;

            _logger.LogInformation("Create new user, email: {email}", email);

            var existedUser = await _userManager.FindByEmailAsync(email);

            if (existedUser != null)
            {
                ModelState.AddModelError(nameof(model.Email), "Email already exist");

                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var roleFromDb = await _roleManager.FindByNameAsync(model.RoleName);

            if (roleFromDb == null)
            {
                ModelState.AddModelError(nameof(model.RoleName), "Unavailable role");

                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var userForCreate = new AppUser
            {
                UserName       = model.Email,
                Email          = model.Email,
                EmailConfirmed = true
            };

            var result = await _userManager.CreateAsync(userForCreate, model.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }

                return(new UnprocessableEntityObjectResult(ModelState));
            }

            await _userManager.AddClaimsAsync(userForCreate, new Claim[] {
                new Claim(JwtClaimTypes.Role, model.RoleName),
                new Claim(JwtClaimTypes.Email, model.Email)
            });

            return(Ok());
        }
Exemplo n.º 4
0
        public Task <UserDetail> CreateUser(UserForCreate user)
        {
            if (user is null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            return(CreateUser());

            async Task <UserDetail> CreateUser()
            {
                var userForCreate = _mapper.Map <User>(user);

                _context.Users.Add(userForCreate);
                await _context.SaveChangesAsync();

                return(await GetUser(userForCreate.UserId));
            }
        }
Exemplo n.º 5
0
        public async Task <IActionResult> CreateUser([FromBody] UserForCreate input)
        {
            if (ModelState.IsValid)
            {
                var result = await _userRepository.CreateUserAsync(input);

                if (result)
                {
                    return(Ok(new {
                        message = "success",
                        StatusCode = 200
                    }));
                }

                return(BadRequest(new
                {
                    message = "fail"
                }));
            }

            return(BadRequest(ModelState));
        }