public ActionResult EditRole(AdminEditRoleViewModel viewModel) { var role = MembershipService.GetRole(viewModel.Id, false); if (role == null) { return(RedirectToAction("Roles")); } if (ModelState.IsValid) { using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork()) { try { if (!role.Lock) { role.RoleName = viewModel.RoleName; MembershipService.Update(role); } _permissionService.ClearPermissionsInRole(role); if (viewModel.AllPermissions != null) { foreach (var it in viewModel.AllPermissions) { if (it.Check && it.Id != null) { _permissionService.AddPermissionInRole((Guid)it.Id, role.Id); } } } unitOfWork.Commit(); TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel { Message = "Sửa thông tin chức vụ thành công.", MessageType = GenericMessages.success }; //return RedirectToAction("Roles"); } catch (Exception ex) { LoggingService.Error(ex.Message); unitOfWork.Rollback(); TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel { Message = "Có lỗi xảy ra khi sưa thông tin chức vụ!", MessageType = GenericMessages.warning }; } } } return(View(viewModel)); }