예제 #1
0
 public async Task<ActionResult> ReadUser(SaveUserModel user)
 {
     if (ModelState.IsValid)
     {
         if (await UserService.UpdateAsync(user) != null)
         {
             ViewBag.Status = "Пользователь " + user.Name + " успешно сохранён";
             return PartialView("Success");
         }
         else
         {
             return HttpNotFound();
         }
     }
     return View();     
 }
예제 #2
0
        //Редактирование пользователя
        public async Task<SaveUserModel> UpdateAsync(SaveUserModel userUpdate)
        {

            CatalogUser findUser = await _userManager.FindByIdAsync(userUpdate.Id);
            if (findUser == null)
            {
                return null;
            }
            findUser.Name = userUpdate.Name;
            findUser.LastName = userUpdate.LastName;
            findUser.Email = userUpdate.Email;
            findUser.Activated = userUpdate.Activated;

            //если пользователю назначена группа
            if (userUpdate.Role != "Отсутствует")
            {
                //если у пользователя уже есть группа
                if (findUser.Roles.ToList().Count > 0)
                {
                    //удаляем старую группу
                    await _userManager.RemoveFromRoleAsync(findUser.Id, (await _userManager.GetRolesAsync(findUser.Id)).FirstOrDefault());
                }
                //добовляем пользователю новую группу
                await _userManager.AddToRoleAsync(findUser.Id, userUpdate.Role);
            }
            else //если пользователю не назначена группа
            {
                //если у пользователя уже есть группа
                if (findUser.Roles.ToList().Count > 0)
                {
                    //удаляем старую группу
                    await _userManager.RemoveFromRoleAsync(findUser.Id, (await _userManager.GetRolesAsync(findUser.Id)).FirstOrDefault());
                }
            }
            IdentityResult result = await _userManager.UpdateAsync(findUser);
            return result.Succeeded ? userUpdate : null;
        }