コード例 #1
0
        public async Task <ActionResult> EditAsync(EditableUserView model)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = await UserManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    if (UserManager.HasPassword(user.Id))
                    {
                        if (!string.IsNullOrEmpty(model.Password))
                        {
                            UserManager.RemovePassword(user.Id);
                            UserManager.AddPassword(user.Id, model.Password);
                        }
                        user.Email = model.Email;
                        //user.UserName = model.UserName;
                        user.PhoneNumber = model.PhoneNumber;
                        UserManager.RemoveFromRole(model.Id, GetUserRoles(model.Email).FirstOrDefault());
                        UserManager.AddToRole(model.Id, model.SelectedRole);
                    }
                    else
                    {
                        ModelState.AddModelError("", "Произошла ошибка. Попробуйте ещё раз.");
                    }
                    UserManager.Update(user);
                }
                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Edit", new { id = model.Id }));
        }
コード例 #2
0
        private EditableUserView CreateEditableUserView(ApplicationUser user)
        {
            EditableUserView _view = new EditableUserView
            {
                Id          = user.Id,
                Email       = user.Email,
                UserName    = user.UserName,
                PhoneNumber = user.PhoneNumber,
                Roles       = new SelectList(new List <SelectListItem>
                {
                    new SelectListItem {
                        Text = "Client", Value = "Client", Selected = true
                    },
                    new SelectListItem {
                        Text = "Admin", Value = "Admin", Selected = false
                    },
                    new SelectListItem {
                        Text = "Moderator", Value = "Moderator", Selected = false
                    },
                    new SelectListItem {
                        Text = "Rater", Value = "Rater", Selected = false
                    },
                    new SelectListItem {
                        Text = "Partner", Value = "Partner", Selected = false
                    }
                }, "Value", "Text"),
                SelectedRole = GetUserRoles(user.Email).FirstOrDefault()
            };

            return(_view);
        }
コード例 #3
0
        public async Task <ActionResult> Edit(string id)
        {
            if (id == null)
            {
                throw new HttpException(400, String.Empty);
            }
            var _user = await UserManager.FindByIdAsync(id.ToString());

            if (_user == null)
            {
                return(HttpNotFound());
            }
            EditableUserView _userView = CreateEditableUserView(_user);

            return(View(_userView));
        }