コード例 #1
0
        private void SetRolePermissionsFunctionMap(RoleDTO csDto)
        {
            var roleFunctionMaps = _databaseContext.RoleFunctionMaps.Where(a => a.RoleId == csDto.Id);

            foreach (var roleFunctionMap in roleFunctionMaps)
            {
                _databaseContext.RoleFunctionMaps.Remove(roleFunctionMap);
            }


            foreach (var functionDto in csDto.FunctionDtos)
            {
                var roleFunctionMap = new RoleFunctionMap()
                {
                    FunctionId = functionDto.Id,
                    RoleId     = csDto.Id
                };
                _databaseContext.RoleFunctionMaps.Add(roleFunctionMap);
            }
        }
コード例 #2
0
        public IActionResult RoleFunctionMapSet(RoleFunctionSetDto dto)
        {
            AjaxResult result = new AjaxResult
            {
                Type    = Data.AjaxResultType.Success,
                Content = "操作成功:<br>"
            };
            int delCount = 0;
            int addCount = 0;

            //特殊处理
            if (dto.FunctionIds == null || dto.FunctionIds.Length == 0)
            {
                delCount = _roleFunctionMapContract.Delete(m => m.RoleId == dto.RoleId);
            }
            else
            {
                try
                {
                    var dbItem = _roleFunctionMapContract.Entities.Where(m => m.RoleId == dto.RoleId).ToArray();

                    int count             = dto.FunctionIds.Length;
                    RoleFunctionMap[] arr = new RoleFunctionMap[count];
                    for (int i = 0; i < count; i++)
                    {
                        arr[i] = new RoleFunctionMap
                        {
                            RoleId     = dto.RoleId,
                            FunctionId = dto.FunctionIds[i]
                        };
                    }

                    _roleFunctionMapContract.UnitOfWork.BeginTran();


                    //删除
                    var delItem = dbItem.Except(arr, EqualityHelper <RoleFunctionMap> .CreateComparer(m => m.RoleId + "-" + m.FunctionId)).ToArray();
                    if (delItem.Length > 0)
                    {
                        delCount = _roleFunctionMapContract.Delete(delItem.Select(m => m.Id).ToArray());
                    }

                    //新增
                    var addItem = arr.Except(dbItem, EqualityHelper <RoleFunctionMap> .CreateComparer(m => m.RoleId + "-" + m.FunctionId)).ToArray();
                    if (addItem.Length > 0)
                    {
                        addCount = _roleFunctionMapContract.Insert(addItem);
                    }

                    _roleFunctionMapContract.UnitOfWork.Commit();
                }
                catch (Exception)
                {
                    _roleFunctionMapContract.UnitOfWork.Rollback();
                }
            }

            if (addCount > 0)
            {
                result.Content += "新增 " + addCount + " 条权限<br>";
            }
            if (delCount > 0)
            {
                result.Content += "删除 " + delCount + " 条权限<br>";
            }
            if (addCount == 0 && delCount == 0)
            {
                result.Content += "无任何修改!";
            }
            else
            {
                //同步到缓存
                _roleFunctionMapContract.SyncToCache(dto.RoleId);
            }

            return(Json(result));
        }
コード例 #3
0
 public Task <int> InsertAsync(RoleFunctionMap entity)
 {
     return(_repository.InsertAsync(entity));
 }
コード例 #4
0
 public Task <int> DeleteAsync(RoleFunctionMap entity)
 {
     return(_repository.DeleteAsync(entity));
 }
コード例 #5
0
 /// <summary>
 /// 新增
 /// </summary>
 /// <returns>操作影响的行数</returns>
 public int Insert(RoleFunctionMap entity)
 {
     return(_repository.Insert(entity));
 }
コード例 #6
0
 /// <summary>
 /// 根据实体删除
 /// </summary>
 /// <param name="entity">实体对象</param>
 /// <returns>操作影响的行数</returns>
 public int Delete(RoleFunctionMap entity)
 {
     return(_repository.Delete(entity));
 }
コード例 #7
0
 public Task <int> UpdateAsync(RoleFunctionMap entity, string[] ignoreColumns = null)
 {
     return(_repository.UpdateAsync(entity, ignoreColumns));
 }
コード例 #8
0
 /// <summary>
 /// 修改(主键是更新条件)
 /// </summary>
 /// <param name="entity"> 实体对象(必须指定主键特性 [SugarColumn(IsPrimaryKey=true)])</param>
 /// <param name="ignoreColumns">不更新的列</param>
 /// <returns>操作影响的行数</returns>
 public int Update(RoleFunctionMap entity, string[] ignoreColumns = null)
 {
     return(_repository.Update(entity, ignoreColumns));
 }
コード例 #9
0
 public Task <RoleFunctionMap> InsertReturnEntityAsync(RoleFunctionMap entity)
 {
     return(_repository.InsertReturnEntityAsync(entity));
 }
コード例 #10
0
 /// <summary>
 /// 新增并返回实体
 /// </summary>
 /// <returns>操作影响的行数</returns>
 public RoleFunctionMap InsertReturnEntity(RoleFunctionMap entity)
 {
     return(_repository.InsertReturnEntity(entity));
 }