Beispiel #1
0
        public override void SetViewModelProperties(SearchPage viewModel, ContentModel contentModel)
        {
            base.SetViewModelProperties(viewModel, contentModel);

            viewModel.Query = _httpUtility.UrlDecode(_httpRequest.QueryString[QueryStrings.SearchQuery]);
            viewModel.CurrentPaginationPageNumber = int.Parse(string.IsNullOrEmpty(_httpRequest.QueryString[QueryStrings.Pagination]) ? "1" : _httpRequest.QueryString[QueryStrings.Pagination]);


            if (!string.IsNullOrEmpty(viewModel.Query))
            {
                Search(viewModel);
            }


            viewModel.NumberOfPages                    = (int)Math.Round(Convert.ToDecimal((double)viewModel.TotalItems / _globalSettingsPageViewModel.SearchResultsPerPage), MidpointRounding.AwayFromZero);
            viewModel.ShowPagination                   = viewModel.NumberOfPages >= 2;
            viewModel.PaginationSearchQuery            = $"{viewModel.Url}?{QueryStrings.SearchQuery}={viewModel.Query}&{QueryStrings.Pagination}=";
            viewModel.ShowNextPagePaginationSymbol     = viewModel.CurrentPaginationPageNumber < viewModel.NumberOfPages;
            viewModel.ShowPreviousPagePaginationSymbol = viewModel.CurrentPaginationPageNumber > 1;
            viewModel.NextPaginationPageUrl            = $"{viewModel.PaginationSearchQuery}{viewModel.CurrentPaginationPageNumber + 1}";
            viewModel.PreviousPaginationPageUrl        = $"{viewModel.PaginationSearchQuery}{viewModel.CurrentPaginationPageNumber + -1}";
            viewModel.ShowSearchResults                = !string.IsNullOrEmpty(viewModel.Query);
            viewModel.SearchResultWord                 = viewModel.TotalItems == 1 ? "result" : "results";
        }