Ejemplo n.º 1
0
        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)
            });
        }
Ejemplo n.º 3
0
        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
            });
        }