コード例 #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));
 }
コード例 #9
0
 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));
 }