public virtual ActionResult Index()
        {
            PagingSettingsViewModel pagingSettingsViewModel = this.GetOrCreatePagingSettingsViewModel();

            List<ListItem> records = new List<ListItem>();

            for(int i = 0; i < pagingSettingsViewModel.NumberOfRecords; i++)
            {
                ListItem listItem = new ListItem
                    {
                        Heading = string.Format(CultureInfo.InvariantCulture, "Heading {0}", i),
                        Information = string.Format(CultureInfo.InvariantCulture, "Information {0}, information {0}, information {0}, information {0}, information {0}, information {0}, information {0}, information {0}, information {0}.", i)
                    };

                records.Add(listItem);
            }

            PagingResolver pagingResolver = new PagingResolver
                {
                    MaximumNumberOfDisplayedPages = pagingSettingsViewModel.MaximumNumberOfDisplayedPages,
                    PageIndexQueryStringKey = pagingSettingsViewModel.PageIndexQueryStringKey,
                    PageSize = pagingSettingsViewModel.PageSize,
                    PagingEnabled = pagingSettingsViewModel.PagingEnabled
                };

            PagingViewModel model = new PagingViewModel();

            this.PopulateModel(model);

            model.Title = "Paging sample";

            model.PagingResult = pagingResolver.Resolve(records, this.HttpContext.Request.Url);

            model.Records = records;

            return this.View(model);
        }
        protected virtual PagingSettingsViewModel CreateDefaultPagingSettingsViewModel()
        {
            PagingResolver pagingResolver = new PagingResolver();

            return new PagingSettingsViewModel
                {
                    MaximumNumberOfDisplayedPages = pagingResolver.MaximumNumberOfDisplayedPages,
                    NumberOfRecords = 1000,
                    PageIndexQueryStringKey = pagingResolver.PageIndexQueryStringKey,
                    PageSize = pagingResolver.PageSize,
                    PagingEnabled = pagingResolver.PagingEnabled
                };
        }