public async Task <IResultModel> BindPermission(MenuBindPermissionModel model) { _uow.BeginTransaction(); //删除旧数据 if (await _menuPermissionRepository.DeleteByMenuId(model.Id)) { if (model.PermissionList == null || !model.PermissionList.Any()) { _uow.Commit(); await ClearAccountPermissionCache(model.Id); return(ResultModel.Success()); } //添加新数据 var entityList = new List <MenuPermissionEntity>(); model.PermissionList.ForEach(p => { entityList.Add(new MenuPermissionEntity { MenuId = model.Id, PermissionId = p }); }); if (await _menuPermissionRepository.AddAsync(entityList)) { _uow.Commit(); await ClearAccountPermissionCache(model.Id); return(ResultModel.Success()); } } _uow.Rollback(); return(ResultModel.Failed()); }
/// <summary> /// 同步权限 /// </summary> /// <returns></returns> private async Task <bool> SyncPermission(MenuEntity menu, List <string> permissions, IDbTransaction transaction) { if (menu.Type != MenuType.Route) { return(true); } //删除旧数据 if (await _menuPermissionRepository.DeleteByMenu(menu.RouteName, transaction)) { if (permissions == null || !permissions.Any()) { await ClearAccountPermissionCache(menu); return(true); } //添加新数据 var entityList = new List <MenuPermissionEntity>(); permissions.ForEach(code => { entityList.Add(new MenuPermissionEntity { MenuCode = menu.RouteName, PermissionCode = code.ToLower() }); }); return(await _menuPermissionRepository.AddAsync(entityList, transaction)); } return(false); }