コード例 #1
0
        public PagedList <ReturnDetail> GetReturnDetails(ReturnDetailQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            var returnDetails = _unitOfWork.ReturnDetailRepository.GetAll();

            if (filters.BookId != null)
            {
                returnDetails = returnDetails.Where(x => x.BookId == filters.BookId);
            }
            if (filters.ReturnId != null)
            {
                returnDetails = returnDetails.Where(x => x.ReturnId == filters.ReturnId);
            }
            if (filters.Fee != null)
            {
                returnDetails = returnDetails.Where(x => x.Fee == filters.Fee);
            }
            if (filters.PunishFee != null)
            {
                returnDetails = returnDetails.Where(x => x.PunishFee == filters.PunishFee);
            }
            var pagedReturnDetails = PagedList <ReturnDetail> .Create(returnDetails, filters.PageNumber, filters.PageSize);

            return(pagedReturnDetails);
        }
コード例 #2
0
        public IActionResult GetReturnDetails([FromQuery] ReturnDetailQueryFilter filters)
        {
            var returnDetails     = _returnDetailService.GetReturnDetails(filters);
            var returnDetailsDtos = _mapper.Map <IEnumerable <ReturnDetailDto> >(returnDetails);
            var metadata          = new Metadata
            {
                TotalCount      = returnDetails.TotalCount,
                PageSize        = returnDetails.PageSize,
                CurrentPage     = returnDetails.CurrentPage,
                TotalPages      = returnDetails.TotalPages,
                HasNextPage     = returnDetails.HasNextPage,
                HasPreviousPage = returnDetails.HasPreviousPage
            };

            var response = new ApiResponse <IEnumerable <ReturnDetailDto> >(returnDetailsDtos)
            {
                Meta = metadata
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(response));
        }
コード例 #3
0
        public Uri GetReturnDetailPaginationUri(ReturnDetailQueryFilter filter, string actionUrl)
        {
            string baseUrl = $"{_baseUri}{actionUrl}";

            return(new Uri(baseUrl));
        }