Пример #1
0
        public PagedList <Staff> GetStaffs(StaffQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            var staffs = _unitOfWork.StaffRepository.GetAll();

            if (filters.Name != null)
            {
                staffs = staffs.Where(x => x.Name.ToLower().Contains(filters.Name.ToLower()));
            }
            var pagedStaffs = PagedList <Staff> .Create(staffs, filters.PageNumber, filters.PageSize);

            return(pagedStaffs);
        }
Пример #2
0
        public IActionResult GetStaffs([FromQuery] StaffQueryFilter filters)
        {
            var staffs    = _staffService.GetStaffs(filters);
            var staffsDto = _mapper.Map <IEnumerable <StaffDto> >(staffs);
            var metadata  = new Metadata
            {
                TotalCount      = staffs.TotalCount,
                PageSize        = staffs.PageSize,
                CurrentPage     = staffs.CurrentPage,
                TotalPages      = staffs.TotalPages,
                HasNextPage     = staffs.HasNextPage,
                HasPreviousPage = staffs.HasPreviousPage
            };

            var response = new ApiResponse <IEnumerable <StaffDto> >(staffsDto)
            {
                Meta = metadata
            };

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

            return(Ok(response));
        }
Пример #3
0
        public Uri GetStaffPaginationUri(StaffQueryFilter filter, string actionUrl)
        {
            string baseUrl = $"{_baseUri}{actionUrl}";

            return(new Uri(baseUrl));
        }