public AccountDTO RegisterAccount(ViewModel.AccountDTO accountDto) { Account account = accountDto.MapperTo <AccountDTO, Account>(); account.AccountType = AccountType.Register; account.Role = _roleRepository.GetFilter(it => it.Name == Constant.ROLE_ANONYMOUS_EN).FirstOrDefault();//刚注册的用户设置为匿名角色 //验证数据是否正确 if (_accountRepository.GetFilter(it => it.Name.Equals(accountDto.Name)).FirstOrDefault() != null) { //throw new DomainException(Constant.ACCOUNT_NAME_REPEATED); throw new DomainBusinessException(Constant.ACCOUNT_NAME_REPEATED); } _accountRepository.Add(account); _unitOfWork.Commit(); return(_accountRepository.Select(it => it.Name.Equals(accountDto.Name), it => new AccountDTO() { Id = it.Id, Age = it.Age, Email = it.Email, Name = it.Name, Password = it.Password, Sex = it.Sex, Tel = it.Tel, RoleId = it.Role.Id, RoleName = it.Role.Name }).First()); }
public List <RolePermissonDTO> GetRolePermisson(int RoleId) { //1、取出所有的功能权限 //2、给角色已有的权限标记 //3、组成结构树 Int32 id = 1;//自增长序号,在easyui的treegrid中 将id设置成0会造成在获取子节点是出错 SysRole selectedRole = _roleRepository.GetFilter(it => it.Id == RoleId, "FunctionRights").FirstOrDefault(); List <SysFunctionRight> selectedRight = null; if (selectedRole != null) { selectedRight = selectedRole.FunctionRights; } else { return(new List <RolePermissonDTO>()); } List <SysModule> list = _moduleRepository.GetFilter(it => true, "ModuleOperates").ToList(); List <RolePermissonDTO> rolePermissionList = new List <RolePermissonDTO>(); list.ForEach(it => { RolePermissonDTO rpd = new RolePermissonDTO() { Id = id++, ModuleName = it.Name, IsModule = true, ParentId = it.ParentId, ModuleId = it.Id }; if (it.ModuleOperates != null) { foreach (var item in it.ModuleOperates) { if (rpd.children == null) { rpd.children = new List <RolePermissonDTO>(); } if (selectedRight != null && selectedRight.Find(sr => sr.KeyCode == item.KeyCode) != null) { rpd.children.Add(new RolePermissonDTO() { Id = id++, ModuleName = "->", OperateName = item.Name, KeyCode = item.KeyCode, IsModule = false, IsOwned = true, OperateId = item.Id }); } else { rpd.children.Add(new RolePermissonDTO() { Id = id++, ModuleName = "->", OperateName = item.Name, KeyCode = item.KeyCode, IsModule = false, OperateId = item.Id }); } } } ; rolePermissionList.Add(rpd); }); rolePermissionList.ForEach(it => { if (it.children == null) { it.children = new List <RolePermissonDTO>(); } //rolePermissionList.FindAll(rpl => rpl.ParentId == it.Id && rpl.IsModule); it.children.AddRange(rolePermissionList.FindAll(rpl => rpl.ParentId == it.ModuleId && rpl.IsModule)); }); return(rolePermissionList.Where(it => it.ParentId == null && it.IsModule).Select(it => it.Extension()).ToList()); //return rolePermissionList; }