public async Task <IActionResult> IndexWithCategory(string category, [FromQuery] int page, [FromQuery] int pageSize)
        {
            var categories = await _stockportApiEventsService.GetEventCategories();

            var viewModel = new EventResultsVIewModel()
            {
                Title = category
            };

            var events = await _stockportApiEventsService.GetEventsByCategory(category, false);

            if (events == null || !events.Any())
            {
                return(View("Index", viewModel));
            }

            var eventCategory = categories.FirstOrDefault(c => c.Slug == category);

            viewModel.Title  = eventCategory != null ? eventCategory.Name : category;
            viewModel.Events = events;

            viewModel.AddQueryUrl(new QueryUrl(Url?.ActionContext.RouteData.Values, Request?.Query));
            _filteredUrl.SetQueryUrl(viewModel.CurrentUrl);
            viewModel.AddFilteredUrl(_filteredUrl);

            DoPagination(viewModel, page, pageSize);

            return(View("Index", viewModel));
        }
        private void DoPagination(EventResultsVIewModel model, int currentPageNumber, int pageSize)
        {
            if (model != null && model.Events.Any())
            {
                var paginatedEvents = PaginationHelper.GetPaginatedItemsForSpecifiedPage(
                    model.Events,
                    currentPageNumber,
                    "events",
                    pageSize,
                    _config.GetEventsDefaultPageSize("stockportgov"));

                model.Events                = paginatedEvents.Items;
                model.Pagination            = paginatedEvents.Pagination;
                model.Pagination.CurrentUrl = model.CurrentUrl;
            }
            else
            {
                model.Pagination = new Pagination();
            }
        }