public async Task <PagedResultDto <AdminListDto> > GetAdmins(GetAdminsInput input) { using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant)) { var cucId = _customTennantAppService.GetTenantIdCucHCC(); if (_session.TenantId != cucId && _session.TenantId != null) { return(null); } var query = (from user in UserManager.Users join ur in _userRoleRepository.GetAll() on user.Id equals ur.UserId into urJoined from ur in urJoined.DefaultIfEmpty() join r in _roleRepository.GetAll() on ur.RoleId equals r.Id into rJoined from r_tb in rJoined.DefaultIfEmpty() join t in _tenantManager.Tenants on user.TenantId equals t.Id into tJoined from t_tb in tJoined.DefaultIfEmpty() where (r_tb.Name == "Admin" && user.IsActive == true && user.TenantId.HasValue && t_tb.IsActive == true) select new AdminListDto { Id = user.Id, UserName = user.UserName, Name = user.Name, Surname = user.Surname, EmailAddress = user.EmailAddress, TenantId = user.TenantId, TenantName = user.TenantId.HasValue ? t_tb.Name : string.Empty, TenancyName = user.TenantId.HasValue ? t_tb.TenancyName : "", CreationTime = user.CreationTime, LastLoginTime = user.LastLoginTime, IsActive = user.IsActive }) .WhereIf(!string.IsNullOrEmpty(input.Filter), u => u.Name.Contains(input.Filter) || u.Surname.Contains(input.Filter) || u.EmailAddress.Contains(input.Filter) || u.UserName.Contains(input.Filter) ) .WhereIf(input.TenantId.HasValue, u => u.TenantId == input.TenantId); var adminCount = await query.CountAsync(); var admins = await query .OrderBy(u => u.UserName) .PageBy(input) .ToListAsync(); return(new PagedResultDto <AdminListDto>( adminCount, admins )); } }
public async Task <GetAdminsOutput> GetAdmins(GetAdminsInput input) { Expression <Func <User, object> >[] propertySelectors = new Expression <Func <User, object> >[] { e => e.Account }; var admins = _adminManager.GetAdminsIncluding(propertySelectors).Where(e => (string.IsNullOrEmpty(input.SearchKey) || e.Name.Contains(input.SearchKey))).Skip((input.PageIndex - 1) * input.PageSize).Take(input.PageSize).ToList(); return(new GetAdminsOutput() { Admins = AutoMapper.Mapper.Map <List <UserDto> >(admins) }); }
public async Task <GetAdminsOutput> GetAdmins(GetAdminsInput input) { Expression <Func <User, object> >[] propertySelectors = new Expression <Func <User, object> >[] { e => e.Account }; IEnumerable <User> admins = _adminManager.GetAdminsIncluding(propertySelectors).Where(e => (string.IsNullOrEmpty(input.SearchKey) || e.Name.Contains(input.SearchKey))); int num = admins.Count(); admins = admins.Skip((input.PageIndex - 1) * input.PageSize).Take(input.PageSize).ToList(); return(new GetAdminsOutput() { Admins = _objectMapper.Map <List <UserDto> >(admins), ResourceNum = num, PageIndex = input.PageIndex }); }