public IViewComponentResult Invoke( string url, string pageParamName, int totalNoOfItems, int itemsPerPage, int noOfPagesToDisplay, bool isSliding) { var totalNoOfPages = _paginationHelper.GetTotalNoOfPages(totalNoOfItems, itemsPerPage); var currentPageNo = _paginationHelper.GetCurrentPageNo(url, pageParamName); var(startAt, endAt) = _paginationHelper.GetStartAtEndAt(totalNoOfPages, noOfPagesToDisplay, currentPageNo, isSliding); var items = new List <PaginationItemModel>(); if (_paginationHelper.TryGetPrevious(url, pageParamName, currentPageNo, out PaginationItemModel previous)) { items.Add(previous); } items.AddRange(_paginationHelper.GetPages(url, pageParamName, currentPageNo, startAt, endAt)); if (_paginationHelper.TryGetNext(url, pageParamName, currentPageNo, totalNoOfPages, out PaginationItemModel next)) { items.Add(next); } var actualModel = new PaginationModel(items); return(View("~/ViewComponents/Pagination/Default.cshtml", actualModel)); }
public async Task <IActionResult> Index([FromQuery] LarsSearchRequestModel requestModel) { LarsSearchResultModel model; if (requestModel == null) { model = new LarsSearchResultModel(); } else { var criteria = _larsSearchHelper.GetLarsSearchCriteria( requestModel, _paginationHelper.GetCurrentPageNo(Request.GetDisplayUrl(), _larsSearchSettings.PageParamName), _larsSearchSettings.ItemsPerPage, (LarsSearchFacet[])Enum.GetValues(typeof(LarsSearchFacet))); var result = await _larsSearchService.SearchAsync(criteria); if (result.IsSuccess && result.HasValue) { var filters = _larsSearchHelper.GetLarsSearchFilterModels(result.Value.SearchFacets, requestModel); var items = _larsSearchHelper.GetLarsSearchResultItemModels(result.Value.Value); model = new LarsSearchResultModel( requestModel.SearchTerm, items, Request.GetDisplayUrl(), _larsSearchSettings.PageParamName, _larsSearchSettings.ItemsPerPage, result.Value.ODataCount ?? 0, filters); } else { model = new LarsSearchResultModel(result.Error); } } _logger.LogMethodExit(); return(ViewComponent(nameof(ViewComponents.LarsSearchResult.LarsSearchResult), model)); }