public async Task <bool> BoxSaveAsync(RoleTreeDto dto)
        {
            var uri      = API.SysResource.BoxSaveAsync(_baseUrl);
            var content  = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");
            var response = await _apiClient.PostAsync(uri, content);

            response.EnsureSuccessStatusCode();
            string res = await response.Content.ReadAsStringAsync();

            return(res.ToLower() == bool.TrueString.ToLower());
        }
        public async Task <IActionResult> BoxSave([FromBody] RoleTreeDto dto)
        {
            if (dto.RoleId <= 0)
            {
                return(NotFound());
            }

            dto.CreateUserId = UserIdentity.UserId;
            var res = await _resourceService.BoxSaveAsync(dto);

            return(Ok(res));
        }
示例#3
0
        /// <summary>
        /// 角色分配资源保存
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> BoxSaveAsync(RoleTreeDto dto)
        {
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    //该角色下全部资源关系
                    var rolerelist = await _databaseFixture.Db.SysRoleResource.FindAllAsync(m => m.RoleId == dto.RoleId);

                    var dbroleres = rolerelist.ToList();
                    //全增全删操作
                    if (dbroleres.HasItems())
                    {
                        foreach (var item in dbroleres)
                        {
                            await _databaseFixture.Db.SysRoleResource.DeleteAsync(item, tran);
                        }
                    }
                    //表示非操作按钮
                    var restree = dto.ResourceIds;
                    if (restree.HasItems())
                    {
                        foreach (var item in restree)
                        {
                            SysRoleResource roleres = new SysRoleResource()
                            {
                                CreateTime = DateTime.Now.ToTimeStamp(),
                                ResourceId = item.ToInt32(),
                                RoleId     = dto.RoleId
                            };
                            await _databaseFixture.Db.SysRoleResource.InsertAsync(roleres, tran);
                        }
                    }
                    tran.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    _logJobs.ExceptionLog(dto.CreateUserId, ex);
                    return(false);
                }
            }
        }
示例#4
0
    public async Task <RoleTreeDto> GetRoleTreeListByUserIdAsync(long userId)
    {
        RoleTreeDto result = null;
        IEnumerable <ZTreeNodeDto <long, dynamic> > treeNodes = null;

        var user = await _userRepository.FetchAsync(x => new { x.RoleIds }, x => x.Id == userId);

        if (user is null)
        {
            return(null);
        }

        var roles = await _cacheService.GetAllRolesFromCacheAsync();

        var roleIds = user.RoleIds?.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => long.Parse(x)) ?? new List <long>();

        if (roles.Any())
        {
            treeNodes = roles.Select(x => new ZTreeNodeDto <long, dynamic>
            {
                Id      = x.Id,
                PID     = x.Pid ?? 0,
                Name    = x.Name,
                Open    = !(x.Pid.HasValue && x.Pid.Value > 0),
                Checked = roleIds.Contains(x.Id)
            });

            result = new RoleTreeDto
            {
                TreeData = treeNodes.Select(x => new Node <long>
                {
                    Id      = x.Id,
                    PID     = x.PID,
                    Name    = x.Name,
                    Checked = x.Checked
                }),
                CheckedIds = treeNodes.Where(x => x.Checked).Select(x => x.Id)
            };
        }

        return(result);
    }
 public async Task <bool> BoxSaveAsync([FromBody] RoleTreeDto dto)
 {
     return(await _resourceService.BoxSaveAsync(dto));
 }