public List <SysUserGroup> RecursiveGetUserGroup(List <SysUserGroup> data, SysUserGroup child) { //取出父级 List <SysUserGroup> userGroups = new List <SysUserGroup>(); userGroups.Add(child); //查看还有无父级 var parents = data.Where(e => e.UserGroupId == child.ParentId).ToList(); if (parents.Count <= 0) { return(userGroups); } var child_entity = data.FirstOrDefault(e => e.UserGroupId == child.UserGroupId); if (child_entity != null) { data.Remove(child_entity); } foreach (var parent in parents) { userGroups.AddRange(RecursiveGetUserGroup(data, parent)); } return(userGroups); }
/// <summary> /// 递归获取功能模块 /// 并整理成树形结构 /// </summary> /// <param name="data"></param> /// <param name="parent"></param> /// <returns></returns> private UserGroupStructure Recursive(List <SysUserGroup> data, SysUserGroup parent) { var module = new UserGroupStructure() { Id = parent.UserGroupId, Level = (int)parent.UserGroupLevel, Name = parent.UserGroupName }; //移除自身 var childs = data.Where(e => e.ParentId == parent.UserGroupId).ToList(); if (childs.Count == 0) { return(module); } var parent_entity = data.FirstOrDefault(e => e.UserGroupId == parent.UserGroupId); if (parent_entity != null) { data.Remove(parent_entity); } foreach (var child in childs) { module.ListChilds.Add(Recursive(data.Where(e => e.ParentId == child.UserGroupId).ToList(), child)); } return(module); }
public void GroupUser() { SysGroup TEMP = Session.Get <SysGroup>(3); //SysGroup g = new SysGroup(); //g.CreateDate = g.ModifiedDate = DateTime.Now; //g.GroupName = "测试组"; //g.OrderBy = 1; //g.Status = Convert.ToByte(new Random().Next(4)); //g.SysUserGroupList=new List<SysUserGroup>(); SysUserGroup gu = new SysUserGroup(); gu.SysGroup = TEMP; SysUser u = Session.Get <SysUser>(5); gu.SysUser = u; //g.SysUserGroupList.Add(gu); Session.Save(gu); }
/// <summary> /// 递归获取模块 /// 返回list 用于删除 /// </summary> /// <param name="data"></param> /// <param name="parent"></param> /// <returns></returns> private List <SysUserGroup> RecursiveList(List <SysUserGroup> data, SysUserGroup parent) { List <SysUserGroup> SysUserGroup = new List <SysUserGroup>(); SysUserGroup.Add(parent); var childs = data.Where(e => e.ParentId == parent.UserGroupId).ToList(); if (childs.Count == 0) { return(SysUserGroup); } var parent_entity = data.FirstOrDefault(e => e.UserGroupId == parent.UserGroupId); if (parent_entity != null) { data.Remove(parent_entity); } foreach (var child in childs) { SysUserGroup.AddRange(RecursiveList(data.Where(e => e.ParentId == child.UserGroupId).ToList(), child)); } return(SysUserGroup); }
public int Update(SysUserGroup sysUserGroup) { return(SysUserGroupRepository.Update(sysUserGroup)); }
public int Insert(SysUserGroup sysUserGroup) { return(SysUserGroupRepository.Insert(sysUserGroup)); }
public async Task <FuncResult> Add(UserGroupModel model, string currentUserId) { //模块名称不能重复 if (_context.SysUserGroup.FirstOrDefault(e => e.UserGroupName == model.Name) != null) { return(new FuncResult() { IsSuccess = false, Message = "模块名不能重复!" }); } int level = 1; if (!string.IsNullOrWhiteSpace(model.ParentId)) { var parent_entity = _context.SysUserGroup.FirstOrDefault(e => e.UserGroupId == model.ParentId); if (parent_entity == null) { return(new FuncResult() { IsSuccess = false, Message = "父级ID错误" }); } level = (int)parent_entity.UserGroupLevel + 1; } var entity = new SysUserGroup() { UserGroupId = Guid.NewGuid().ToString(), UserGroupName = model.Name, UserGroupLevel = level, ParentId = model.ParentId, LastUpdatedBy = currentUserId, LastUpdateDate = DateTime.Now, CreatedBy = currentUserId, CreationDate = DateTime.Now }; await _context.SysUserGroup.AddAsync(entity); using (Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction trans = _context.Database.BeginTransaction()) { try { await _context.SaveChangesAsync(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); return(new FuncResult() { IsSuccess = false, Content = ex.Message }); } } return(new FuncResult() { IsSuccess = true, Content = entity, Message = "添加成功" }); }
public SysUserGroupExistException(SysUserGroup _group, Exception innerException) : base(O2.Languages.Errors.SYSUSERGROUP_ALREADY_EXISTS_IN_DB.Replace("{G}", _group.group), "_group", innerException) { }