/// <summary> /// 修改角色和菜单的关联关系 /// </summary> /// <param name="roleId"></param> /// <param name="lstMenuId"></param> /// <returns></returns> public async Task <ResultEntity> EditRoleMenu(int roleId, IList <int> lstMenuId) { var resultEntity = new ResultEntity(); //生成本次批次号 var roleMenu = _roleMenuRepository.GetQueryable().FirstOrDefault(a => a.RoleId == roleId); var batchNo = roleMenu?.BatchNo + 1 ?? 1; //删除现有数据 DeleteRoleMenus(roleId); //添加新增数据 foreach (var menuId in lstMenuId) { var newRoleMenu = new RoleMenu { RoleId = roleId, MenuId = menuId, BatchNo = batchNo }; await _roleMenuRepository.AddAsync(newRoleMenu); } resultEntity.Success = true; return(resultEntity); }
public async Task<IResultModel> BindMenu(RoleMenuBindModel model) { var exists = await _repository.ExistsAsync(model.Id); if (!exists) return ResultModel.NotExists; List<RoleMenuEntity> entityList = null; if (model.Menus != null && model.Menus.Any()) { entityList = model.Menus.Select(m => new RoleMenuEntity { RoleId = model.Id, MenuId = m }).ToList(); } /* * 操作逻辑 * 1、清除已有的绑定数据 * 2、添加新的绑定数据 */ using (var uow = _dbContext.NewUnitOfWork()) { var clear = await _roleMenuRepository.DeleteByRoleId(model.Id, uow); if (clear) { if (entityList == null || !entityList.Any() || await _roleMenuRepository.AddAsync(entityList, uow)) { uow.Commit(); await ClearAccountPermissionCache(model.Id); return ResultModel.Success(); } } } return ResultModel.Failed(); }
public async Task <IResultModel> BindMenus(RoleMenuBindModel model) { if (!await _repository.ExistsAsync(model.RoleId)) { return(ResultModel.NotExists); } using var uow = _dbContext.NewUnitOfWork(); if (await _roleMenuRepository.DeleteByRoleId(model.RoleId, uow)) { if (model.Menus != null && model.Menus.Any()) { var menus = model.Menus .Where(menuId => menuId.NotEmpty()) .Select(menuId => new RoleMenuEntity { RoleId = model.RoleId, MenuId = menuId }).ToList(); await _roleMenuRepository.AddAsync(menus, uow); } uow.Commit(); //清楚缓存 await ClearAccountPermissionCache(model.RoleId); return(ResultModel.Success()); } return(ResultModel.Failed()); }
public async Task <IResultModel> BindMenu(RoleMenuBindModel model) { var exists = await _repository.ExistsAsync(model.Id); if (!exists) { return(ResultModel.NotExists); } List <RoleMenu> entityList = null; if (model.Menus != null && model.Menus.Any()) { entityList = model.Menus.Select(m => new RoleMenu { RoleId = model.Id, MenuId = m }).ToList(); } /* * 操作逻辑 * 1、清除已有的绑定数据 * 2、添加新的绑定数据 */ _uow.BeginTransaction(); var clear = await _roleMenuRepository.DeleteByRoleId(model.Id); if (clear) { if (entityList == null || !entityList.Any() || await _roleMenuRepository.AddAsync(entityList)) { _uow.Commit(); await ClearAccountPermissionCache(model.Id); return(ResultModel.Success()); } } _uow.Rollback(); return(ResultModel.Failed()); }