Example #1
0
        public async Task <IActionResult> Register(ViewUserRegister userRegister)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Check if passwords match
                    if (userRegister.Password == userRegister.PasswordConfirmation)
                    {
                        // Check if user already exists
                        var user = await _userManager.FindByEmailAsync(userRegister.Email);

                        if (user == null)
                        {
                            // Create a user and add a user role to it
                            IdentityUser newUser = new IdentityUser
                            {
                                UserName = userRegister.UserName,
                                Email    = userRegister.Email
                            };
                            var result = await _userManager.CreateAsync(newUser, userRegister.Password);

                            if (result.Succeeded)
                            {
                                var createdUser = await _userManager.FindByEmailAsync(userRegister.Email);

                                var roleResult = await _userManager.AddToRoleAsync(createdUser, "User");

                                if (roleResult.Succeeded)
                                {
                                    return(RedirectToAction("Login", "Account"));
                                }
                                foreach (var error in roleResult.Errors)
                                {
                                    ModelState.AddModelError("", error.Description);
                                }
                            }
                            foreach (var error in result.Errors)
                            {
                                ModelState.AddModelError("", error.Description);
                            }
                        }
                        ModelState.AddModelError("", "Email already has an account!");
                    }
                    ModelState.AddModelError("", "Passwords are different!");
                }
            }
            catch (Exception err)
            {
                Debug.WriteLine($"Error: {err.Message}");
            }
            return(View());
        }
Example #2
0
        public async Task <IActionResult> Register([AllowNull][FromBody] ViewUserRegister user)
        {
            var dbUser         = _mapper.Map <UserRegister>(user);
            var registerStatus = await _authorizer.Register(dbUser);

            var model = new JsonApiResponse <bool>
            {
                Response = registerStatus
            };

            if (registerStatus)
            {
                return(Ok(model));
            }
            return(BadRequest(model));
        }