예제 #1
0
        public async Task <IActionResult> Get([FromQuery] PagedRequestDto request)
        {
            var page     = request.GetSanitizedPage();
            var pageSize = request.GetSanitizedPageSize();

            var totalCount = await _userManager.Users.CountAsync();

            var users = await _userManager.Users.Skip((page - 1) *pageSize).Take(pageSize).ToArrayAsync();

            var responseUsers = await Task.WhenAll(users.Select(async user =>
            {
                var userDto   = _mapper.Map <UserDto>(user);
                userDto.Roles = (await _userManager.GetRolesAsync(user)).ToArray();
                return(userDto);
            }));

            return(Ok(new GetResponseDto()
            {
                Users = responseUsers,
                Meta = new MetaDto
                {
                    CurrentPage = page,
                    PageSize = pageSize,
                    TotalCount = totalCount,
                },
            }));
        }
예제 #2
0
        public async Task <PagedResultDto <TEntityResultListDto> > GetAllAsync(PagedRequestDto input)
        {
            var pagedRequest = _mapper.Map <PagedRequest>(input);

            var pageResult = await _ServiceBase.GetAllAsync(pagedRequest);

            return(_mapper.Map <PagedResultDto <TEntityResultListDto> >(pageResult));
        }
예제 #3
0
        public async Task <IActionResult> GetUsersAsync([FromQuery] PagedRequestDto dto)
        {
            var currentUser = await GetCurrentUserAsync();

            Logger.LogInformation($"{nameof(GetUsersAsync)}, currentUser:{currentUser.ToJson()}, dto:{dto.ToJson()}");
            var result = await _userManager.GetAllAsync(
                dto.Filter,
                dto.MaxResultCount,
                dto.SkipCount);

            return(new ObjectResult(Mapper.Map <PagedResult <User>, PagedResultDto <UserDto, Guid?> >(result)));
        }
예제 #4
0
        public PagedResultDto <PartyDto> GetList(PagedRequestDto request)
        {
            var list = _repository.Get(request.Take, request.Skip).ToList();

            var result = new PagedResultDto <PartyDto>();

            if (list.Any())
            {
                result.Data = MapToDto(list);
            }

            return(result);
        }
예제 #5
0
        public async Task <PageItem <File> > GetPaginatedFiles(PagedRequestDto prd)
        {
            IQueryable <File> query = null;

            var exp = ExpressionBuilder.GetExpression <File>(prd.Filters);

            query = query.Where(exp).AsQueryable();

            var pageItem = new PageItem <File>();

            pageItem.Items = await query.Take(prd.PageNo *prd.PageLen)
                             .Skip((prd.PageNo - 1) * prd.PageLen)
                             .ToListAsync();

            pageItem.TotalItems = query.Count();

            return(pageItem);
        }
예제 #6
0
        public PagedResultDto <BillOfExchangeDto> GetList(PagedRequestDto request)
        {
            if (request == null)
            {
                request = new PagedRequestDto {
                    Skip = 0, Take = 10
                };
            }

            var count = _repository.Count();

            if (count == 0)
            {
                return(new PagedResultDto <BillOfExchangeDto>());
            }

            var list = _repository.Get(request.Take, request.Skip).ToList();

            return(new PagedResultDto <BillOfExchangeDto>
            {
                Count = count,
                Data = MapToDto(list)
            });
        }
예제 #7
0
 /// <summary>
 /// 实体分页集合结果
 /// </summary>
 /// <param name="requestDto"><see cref="PagedRequestDto"/>分页请求对象</param>
 public ResultPagedList(PagedRequestDto requestDto) : this(requestDto.PageNo, requestDto.PageSize)
 {
 }
예제 #8
0
 public async Task <PageItem <dbo.File> > GetPaginatedFiles(PagedRequestDto prd)
 {
     return(await _fileRepository.GetPaginatedFiles(prd));
 }
 public PagedResultDto <BillOfExchangeDto> Get([FromQuery] PagedRequestDto request) =>
 _billsOfExchangeService.GetList(request);
예제 #10
0
 public PagedResultDto <PartyDto> GetParties([FromQuery] PagedRequestDto request)
 {
     return(_partyService.GetList(request));
 }
예제 #11
0
 public async Task <PageItem <dbo.File> > GetFiles(PagedRequestDto prd)
 {
     return(await _fileService.GetPaginatedFiles(prd));
 }
예제 #12
0
        public async Task <PagedResponseDto <RegisteredBusinessDto> > SearchRegisteredBusinessesAsync(PagedRequestDto <string> searchText, CancellationToken cancellationToken = default(CancellationToken))
        {
            const int defaultPageNumber = 1;
            const int defaultPageSize   = 25;

            if (searchText == null)
            {
                searchText = new PagedRequestDto <string>()
                {
                    RequestData = "",
                    PageNumber  = defaultPageNumber,
                    PageSize    = defaultPageSize,
                };
            }
            else
            {
                if (string.IsNullOrWhiteSpace(searchText.RequestData))
                {
                    searchText.RequestData = "";
                }
            }

            int pageNumberZeroBased = Math.Max((searchText.PageNumber ?? defaultPageNumber) - 1, 0);
            int pageSize            = searchText.PageSize ?? defaultPageSize;

            var tokens = searchText.RequestData.Split(" ").ToList();
            IQueryable <RegisteredBusiness> query = Context.RegisteredBusinesses;

            if (AppSettings.UseFullTextSearch ?? false)
            {
                var containsClause = string.Join(" AND ", tokens);
                if (!string.IsNullOrEmpty(containsClause))
                {
                    query = query.FromSql("select * from [RegisteredBusiness] where CONTAINS(([AccountNumber],[AccountName],[LegalName],[AccountLocationCode],[AccountLocation],[ContactPerson],[BusinessStatus],[OwnershipType],[AccountTypeCode],[AccountType],[NAICSCode],[NAICSCategory],[NAICSGroup],[ABCStatusCode],[ABCStatus],[MailingAddressLine1],[MailingAddressLine2],[MailingAddressCity],[MailingAddressState],[MailingAddressZipCode],[PhysicalAddressLine1],[PhysicalAddressLine2],[PhysicalAddressCity],[PhysicalAddressState],[PhysicalAddressZipCode],[Geolocation]), {0})", containsClause);
                }
            }
            else
            {
                query = query.Where(rb =>
                                    rb.AccountNumber.Contains(searchText.RequestData) ||
                                    rb.AccountName.Contains(searchText.RequestData) ||
                                    rb.LegalName.Contains(searchText.RequestData) ||
                                    rb.AccountLocation.Contains(searchText.RequestData) ||
                                    rb.ContactPerson.Contains(searchText.RequestData) ||
                                    rb.NAICSCategory.Contains(searchText.RequestData) ||
                                    rb.NAICSGroup.Contains(searchText.RequestData) ||
                                    rb.ABCStatus.Contains(searchText.RequestData) ||
                                    rb.MailingAddressLine2.Contains(searchText.RequestData) ||
                                    rb.PhysicalAddressLine2.Contains(searchText.RequestData)
                                    );
            }
            var totalCount = await query.CountAsync(cancellationToken);

            // Ensure Realistic Page Parameters.
            pageSize = Math.Min(100, Math.Max(pageSize, 1));
            var itemsToSkip = pageNumberZeroBased * pageSize;

            if (itemsToSkip >= totalCount)
            {
                itemsToSkip         = Math.Max(itemsToSkip - pageSize, 0);
                pageNumberZeroBased = itemsToSkip / pageSize;
            }

            var list = await query
                       .Skip(itemsToSkip)
                       .Take(pageSize)
                       .ToListAsync(cancellationToken);

            var data = list
                       .Select(x => new RegisteredBusinessDto(
                                   x.AccountNumber,
                                   x.AccountName,
                                   x.LegalName,
                                   x.AccountLocationCode,
                                   x.AccountLocation,
                                   x.ContactPerson,
                                   x.BusinessOpenDate,
                                   x.BusinessStatus,
                                   x.BusinessCloseDate,
                                   x.OwnershipType,
                                   x.AccountTypeCode,
                                   x.AccountType,
                                   x.NAICSCode,
                                   x.NAICSCategory,
                                   x.NAICSGroup,
                                   x.ABCStatusCode,
                                   x.ABCStatus,
                                   x.ConsolidatedFiler,
                                   x.MailingAddressLine1,
                                   x.MailingAddressLine2,
                                   x.MailingAddressCity,
                                   x.MailingAddressState,
                                   x.MailingAddressZipCode,
                                   x.PhysicalAddressLine1,
                                   x.PhysicalAddressLine2,
                                   x.PhysicalAddressCity,
                                   x.PhysicalAddressState,
                                   x.PhysicalAddressZipCode,
                                   x.Geolocation
                                   ))
                       .ToList();

            return(new PagedResponseDto <RegisteredBusinessDto>(pageSize, pageNumberZeroBased + 1, totalCount, data));
        }
예제 #13
0
 public async Task <ActionResult <PagedResultDto <EventResultListDto> > > GetAll([FromBody] PagedRequestDto pagedRequestDto = null)
 {
     return(await _eventAppService.GetAllAsync(pagedRequestDto));
 }