Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }