Esempio n. 1
0
        /// <summary>
        /// 运维专用:获取指定租户的全部管理员用户
        /// </summary>
        /// <param name="tenantId"></param>
        /// <returns></returns>

        public async Task <PagedResultDto <UserDto> > GetAllAdminUserInTenantAsync(int tenantId, PagedAdminUserResultRequestDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                var adminRole = await _roleManager.GetRoleByNameAsync(StaticRoleNames.Tenants.Admin);

                IList <User> adminUsers = await _userManager.GetUsersInRoleAsync(adminRole.Name);

                if (!string.IsNullOrEmpty(input.Keyword))
                {
                    adminUsers = adminUsers.Where(
                        u => u.UserName.Contains(input.Keyword) || u.Name.Contains(input.Keyword) || u.EmailAddress.Contains(input.Keyword)).ToList();
                }

                if (input.IsActive.HasValue)
                {
                    adminUsers = adminUsers.Where(u => u.IsActive == input.IsActive.Value).ToList();
                }

                int totalCount = adminUsers.Count;

                var query = adminUsers.AsQueryable();
                query = PagingHelper.ApplySorting <User, long>(query, new PagedAndSortedResultRequestDto()
                {
                    Sorting = "CreationTime DESC"
                });
                query      = PagingHelper.ApplyPaging <User, long>(query, input);
                adminUsers = query.ToList();

                List <UserDto> userDtos = new List <UserDto>();
                foreach (User adminUser in adminUsers)
                {
                    UserDto userDto = ObjectMapper.Map <UserDto>(adminUser);

                    userDto.OrgUnitNames = await _userManager.GetOrgUnitsOfUserAsync(adminUser);

                    userDto.RoleNames = await _userManager.GetRolesOfUserAsync(adminUser);

                    userDto.IsAdmin     = userDto.RoleNames.Contains("Admin");
                    userDto.Permissions = await _userManager.GetPermissionsOfUserAsync(adminUser);

                    userDtos.Add(userDto);
                }

                return(new PagedResultDto <UserDto>(totalCount, userDtos));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 运维专用:获取指定租户的所有角色
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <RoleDto> > GetAllRolesInTenantAsync(int tenantId, PagedRoleResultRequestDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(tenantId))
            {
                var query      = _roleManager.Roles;
                var totalCount = await _roleManager.Roles.CountAsync();

                query = PagingHelper.ApplySorting <Role, int>(query, input);
                query = PagingHelper.ApplyPaging <Role, int>(query, input);

                var entities = await query.ToListAsync();

                return(new PagedResultDto <RoleDto>(totalCount, entities.Select(
                                                        r => ObjectMapper.Map <RoleDto>(r)).ToList()
                                                    ));
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 获取当前租户下的全部组织
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <OrgUnitDto> > GetAllAsync(PagedResultRequestDto input)
        {
            var query      = _orgUnitRepository.GetAll();
            var totalCount = await _orgUnitRepository.CountAsync();

            query = PagingHelper.ApplySorting <OrganizationUnit, long>(query, input);
            query = PagingHelper.ApplyPaging <OrganizationUnit, long>(query, input);

            var entities = await query.ToListAsync();

            List <OrgUnitDto> orgUnitDtos = new List <OrgUnitDto>();

            foreach (OrganizationUnit orgUnit in entities)
            {
                orgUnitDtos.Add(await GenerateOrgUnitDtoAsync(orgUnit));
            }

            return(new PagedResultDto <OrgUnitDto>(totalCount, orgUnitDtos));
        }