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)); }
/// <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); } } }
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)); }