コード例 #1
0
        public async Task <IResultModel> Permissions(ResourceUpdateModel model)
        {
            var entity = await _resourceRepository.FirstAsync(model.Id);

            if (entity == null)
            {
                return(ResultModel.NotExists);
            }

            _mapper.Map(model, entity);

            try
            {
                _dbContext.Db.BeginTran();

                await _resourceRepository.UpdateAsync(entity, _dbContext.Db);

                //过滤
                await _resourceFilterRepository.DeleteAsync(m => m.ResourceId == entity.Id, _dbContext.Db);

                await _resourceFilterRepository.InsertRangeAsync(model.Filters, _dbContext.Db);

                //白名单
                await _resourceWhitelistRepository.DeleteAsync(m => m.ResourceId == entity.Id, _dbContext.Db);

                await _resourceWhitelistRepository.InsertRangeAsync(model.Whitelists, _dbContext.Db);

                _dbContext.Db.CommitTran();
            }
            catch (Exception ex)
            {
                _dbContext.Db.RollbackTran();
                return(ResultModel.Failed(ex.Message));
            }

            return(ResultModel.Success());
        }