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));
        }
Example #3
0
        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();
        }