Ejemplo n.º 1
0
        public async Task <ActionResult <Page <StudentDto> > > ListAsync([FromQuery] StudentFilterPagedRequest request)
        {
            var pageSize  = request.PageSize ?? 10;
            var pageIndex = request.PageIndex ?? 0;

            if (pageSize < 10)
            {
                pageSize = 10;
            }

            var totalItems = await _studentCrudService.CountAsync(
                new StudentSpecification(
                    sex : request.Sex,
                    fullname : request.Fullname,
                    callsign : request.Callsign,
                    group : request.Group));

            var lastPageIndex = totalItems / pageSize;

            //if (totalItems == pageSize * lastPageIndex)
            //	lastPageIndex--;

            if (pageIndex > lastPageIndex)
            {
                pageIndex = lastPageIndex;
            }

            if (pageIndex < 0)
            {
                pageIndex = 0;
            }

            var filter = new StudentSpecification(
                skip: pageSize * pageIndex,
                take: pageSize,
                sex: request.Sex,
                fullname: request.Fullname,
                callsign: request.Callsign,
                @group: request.Group);

            var students = await _studentCrudService.ListAsync(filter)
                           .Select(DtoExtensions.ToDto)
                           .ToArrayAsync();

            return(new Page <StudentDto>
            {
                IsLastPage = pageIndex == lastPageIndex,
                PageIndex = pageIndex,
                PageSize = pageSize,
                Items = students,
            });
        }
Ejemplo n.º 2
0
        public async Task <Page <StudentDto> > ListAsync(StudentFilterPagedRequest request)
        {
            var result = await HttpClient.GetFromJsonAsync <Page <StudentDto> >(
                $"api/Student/List" +
                $"?pageSize={request.PageSize}" +
                $"&pageIndex={request.PageIndex}" +
                $"&sex={request.Sex?.Trim()}" +
                $"&fullname={request.Fullname?.Trim()}" +
                $"&callsign={request.Callsign?.Trim()}" +
                $"&group={request.Group?.Trim()}");

            return(result);
        }