| | |
| | | .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); |
| | | if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "角色"); |
| | | request.Adapt(entity); |
| | | entity.RoleMenus = entity.RoleMenus.Where(it => request.MenuIds.Contains(it.MenuId)).ToList(); |
| | | foreach (var menuId in request.MenuIds) |
| | | { |
| | | var entityRoleMenu = entity.RoleMenus.FirstOrDefault(it => it.MenuId == menuId); |
| | | if (entityRoleMenu == null) |
| | | { |
| | | entityRoleMenu = new RoleMenu |
| | | { |
| | | MenuId = menuId |
| | | }; |
| | | entity.RoleMenus.Add(entityRoleMenu); |
| | | } |
| | | } |
| | | entity.RoleResources = entity.RoleResources.Where(it => request.Resources.Any(r => r.ResourceId == it.ResourceId)).ToList(); |
| | | foreach (var roleResource in request.Resources) |
| | | { |
| | | var entityRoleResource = entity.RoleResources.FirstOrDefault(it => it.ResourceId == roleResource.ResourceId); |
| | | if (entityRoleResource == null) |
| | | { |
| | | entityRoleResource = new RoleResource |
| | | { |
| | | ResourceId = roleResource.ResourceId, |
| | | DataPower = roleResource.DataPower |
| | | }; |
| | | entity.RoleResources.Add(entityRoleResource); |
| | | } |
| | | else |
| | | { |
| | | entityRoleResource.DataPower = roleResource.DataPower; |
| | | } |
| | | } |
| | | await rep.UpdateAsync(entity); |
| | | return entity.Id; |
| | | } |