public async Task EditAPIAuthorityAsync(EditAPIAuthorityModel model) { if (string.IsNullOrEmpty(model.Code)) { throw new InvalidOperationException("代码为空"); } if (string.IsNullOrEmpty(model.Name)) { throw new InvalidOperationException("名称为空"); } if (await _apiAuthorityRepository.CountAsync(m => m.ID != model.ID && m.Code == model.Code) > 0) { throw new InvalidOperationException("代码重复"); } APIAuthority apiAuthorityFromDB = await _apiAuthorityRepository.FirstOrDefaultAsync(model.ID); if (apiAuthorityFromDB == null) { throw new InvalidOperationException("API权限不存在"); } model.CopyProperties(apiAuthorityFromDB); apiAuthorityFromDB.UpdateTime = DateTime.Now; _authorityUnitOfWork.RegisterEdit(apiAuthorityFromDB); await _authorityUnitOfWork.CommitAsync(); _apiAuthorityRepository.ClearCache(); }
public async Task <APIAuthorityDTO> GetAPIAuthorityInfoAsync(Guid id) { APIAuthority apiAuthorityFromDB = await _apiAuthorityRepository.FirstOrDefaultAsync(id); if (apiAuthorityFromDB == null) { throw new InvalidOperationException("API权限不存在"); } return(_mapper.Map <APIAuthorityDTO>(apiAuthorityFromDB)); }
public async Task ExchangeAPIAuthorityParentIDAsync(Guid id, Guid?parentID) { if (parentID.HasValue && !await _apiAuthorityRepository.ExistedAsync(parentID.Value)) { throw new InvalidOperationException("父级唯一标识不存在"); } APIAuthority apiAuthorityFromDB = await _apiAuthorityRepository.FirstOrDefaultAsync(id); if (apiAuthorityFromDB == null) { throw new InvalidOperationException("该API权限不存在"); } apiAuthorityFromDB.ParentID = parentID; _authorityUnitOfWork.RegisterEdit(apiAuthorityFromDB); await _authorityUnitOfWork.CommitAsync(); }
public async Task DeleteAPIAuthorityAsync(Guid id) { List <APIAuthority> allAPIAuthorities = await _apiAuthorityRepository.GetAllInfoFromCacheAsync(); APIAuthority apiAuthorityFromDB = allAPIAuthorities.FirstOrDefault(m => m.ID == id); if (apiAuthorityFromDB == null) { throw new InvalidOperationException("API权限不存在"); } ICollection <APIAuthority> allChild = GetAllChild(allAPIAuthorities, id); foreach (APIAuthority apiAuthority in allChild) { _authorityUnitOfWork.RegisterDelete(apiAuthority); } _authorityUnitOfWork.RegisterDelete(apiAuthorityFromDB); await _authorityUnitOfWork.CommitAsync(); _apiAuthorityRepository.ClearCache(); }