Ejemplo n.º 1
0
        public IActionResult CreateAccount(string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;



            var viewmodel = new CreateUserFormView
            {
                ApplicationRoles = _unitOfWork.Role.GetRoles()
            };

            return(View(viewmodel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateAccount(int id, CreateUserFormView userFormView, string returnUrl = null)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = id == 0 ? new ApplicationUser() : await _userManager.FindByIdAsync(id.ToString());


                user.UserName     = userFormView.UserName;
                user.Email        = userFormView.Email;
                user.Firstname    = userFormView.Firstname;
                user.LastName     = userFormView.Lastname;
                user.PasswordHash = userFormView.Password;
                user.PhoneNumber  = userFormView.PhoneNumber.ToString();
                string existingRole   = _userManager.GetRolesAsync(user).Result.Single();
                int    existingRoleId = _roleManager.Roles.Single(r => r.Name == existingRole).Id;

                IdentityResult result = id == 0 ? await _userManager.CreateAsync(user, userFormView.Password) : await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    if (existingRoleId != userFormView.RoleId)
                    {
                        IdentityResult roleResult = await _userManager.RemoveFromRoleAsync(user, existingRole);

                        if (roleResult.Succeeded)
                        {
                            ApplicationRole applicationRole = await _roleManager.FindByIdAsync(userFormView.RoleId.ToString());

                            if (applicationRole != null)
                            {
                                IdentityResult newRoleResult = await _userManager.AddToRoleAsync(user, applicationRole.Name);

                                if (newRoleResult.Succeeded)
                                {
                                    return(RedirectToAction(returnUrl));
                                }
                            }
                        }
                    }
                }
            }
            return(View(userFormView));
        }