/// <summary> /// 删除授权客户 /// </summary> /// <param name="ids"></param> public Task <bool> DelSysApiClient(List <string> ids) { #region 验证关联的账号 List <Guid> gids = ObjectMapper.Map <List <Guid> >(ids); var resultData = _sysApiClienToAccountRepository.GetAllList(w => gids.Contains(w.ApiClientId)); if (resultData.Any()) { throw new UserFriendlyException("授权客户删除", "请先移除相关账号再删除授权客户。"); } #endregion #region foreach (var id in ids) { if (string.IsNullOrEmpty(id)) { continue; } _sysApiClientRepository.Delete(Guid.Parse(id)); //删除该客户相关的所有资源(目前对应关系是 一个客户仅对应一个资源, 因此删除仅会删除一条关系数据) //注: 可扩展一对多 _sysApiResourceToClientRepository.Delete(w => w.ApiClientId == Guid.Parse(id)); } #endregion //移除缓存 _sysIdentityServerCacheAppService.RemoveClientAndAccountCache(); _sysIdentityServerCacheAppService.RemoveClientCache(); return(Task.FromResult(true)); }
/// <summary> /// 获取授权账号 /// </summary> /// <param name="id"></param> /// <returns></returns> public Task <SysApiAccountData> GetSysApiAccount(string id) { if (string.IsNullOrEmpty(id)) { return(Task.FromResult <SysApiAccountData>(null)); } var data = _sysApiAccountRepository.Get(Guid.Parse(id)); SysApiAccountData model = ObjectMapper.Map <SysApiAccountData>(data); //获取关联的客户 var linkData = _sysApiClienToAccountRepository.GetAllList(w => w.ApiAccountId == Guid.Parse(id)); if (linkData.Any()) { model.ApiClientId = linkData[0].ApiClientId; } return(Task.FromResult(model)); }