public async Task <PagedList <Bet> > SelectBets(BetQueryFilter filters) { var bets = await _unitOfwork.BetRepository.SelectBets(); filters.pageNumber = filters.pageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.pageNumber; filters.pageSize = filters.pageSize == 0 ? _paginationOptions.DefaultPageSize : filters.pageSize; if (filters.id_roulette != null) { bets = bets.Where(e => e.id_roulette == filters.id_roulette); } if (filters.id_user != null) { bets = bets.Where(e => e.id_user == filters.id_user); } var pagedBets = PagedList <Bet> .Create(bets, filters.pageNumber, filters.pageSize); return(pagedBets); }
public async Task <IActionResult> SelectBets([FromQuery] BetQueryFilter filters) { var bets = await _betService.SelectBets(filters); var betDto = _mapper.Map <IEnumerable <BetDto> >(bets); var metaData = new MetaData { TotalCount = bets.TotalCount, PageSize = bets.PageSize, CurrentPage = bets.CurrentPage, TotalPages = bets.TotalPages, HasNextPage = bets.HasNextPage, HasPreviousPage = bets.HasPreviousPage, NextPageUrl = _urlService.getPostPaginationUrl(filters, Url.RouteUrl(nameof(SelectBets))).ToString(), PreviousPageUrl = _urlService.getPostPaginationUrl(filters, Url.RouteUrl(nameof(SelectBets))).ToString() }; var response = new ApiResponses <IEnumerable <BetDto> >(betDto) { Meta = metaData }; Response.Headers.Add("x-Pagination", JsonConvert.SerializeObject(metaData)); return(Ok(response)); }
public Uri getPostPaginationUrl(BetQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUrl}{actionUrl}"; return(new Uri(baseUrl)); }