public ActionResult AddRole(AdminEditRoleViewModel viewModel) { if (ModelState.IsValid) { using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork()) { try { var role = new MembershipRole { RoleName = viewModel.RoleName, }; MembershipService.Add(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 = "Thêm 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 thêm chức vụ!", MessageType = GenericMessages.warning }; } } } return(View(viewModel)); }