// GET: Angular
        public JsonResult Data(string sortOrder, string currentFilter, string searchString, int?page, int?pageSize, string action)
        {
            ViewPagination view = new ViewPagination();

            if (Session.IsNewSession)
            {
                data = personsRepository.InitPersons();
                Session["Persons"] = data;
            }
            else
            {
                data = Session["Persons"] as IEnumerable <Person>;
            }

            var result = data;

            // search
            result = SearchArray(searchString, result);

            // filter
            result = SortOrder(sortOrder, result);

            // set up pagination
            view = Pagination(result, view, pageSize, page);

            return(Json(view, JsonRequestBehavior.AllowGet));
        }
        public void viewPaging()
        {
            // Arrange
            HomeController controller = new HomeController();
            List <Person>  persons    = new List <Person>();

            for (int i = 1; i < 15; i++)
            {
                Person person = new Person()
                {
                    ID = i, Firstname = "Name" + i.ToString(), Lastname = "LastName" + i.ToString(), Socialnumber = "123456-7890" + i.ToString(), PersonCategory = "test" + i.ToString()
                };
                persons.Add(person);
            }
            IEnumerable <Person> result = persons as IEnumerable <Person>;
            ViewPagination       view   = new ViewPagination();
            int?pageSize = 10;
            int?page     = 1;

            // Act
            ViewPagination viewPagination = controller.Pagination(result, view, pageSize, page);

            // Assert
            Assert.AreEqual(viewPagination.pageCount, "2");
            Assert.AreEqual(viewPagination.pageNumber, 1);
            Assert.AreEqual(viewPagination.pageSize, 10);
            Assert.AreEqual(viewPagination.viewResult.Count(), 10);


            page = 2;

            // Act
            viewPagination = controller.Pagination(result, view, pageSize, page);

            // Assert
            Assert.AreEqual(viewPagination.pageCount, "2");
            Assert.AreEqual(viewPagination.pageNumber, 2);
            Assert.AreEqual(viewPagination.pageSize, 10);
            Assert.AreEqual(viewPagination.viewResult.Count(), 4);

            page = null;

            // Act
            viewPagination = controller.Pagination(result, view, pageSize, page);

            // Assert
            Assert.AreEqual(viewPagination.pageCount, "2");
            Assert.AreEqual(viewPagination.pageNumber, 1);
            Assert.AreEqual(viewPagination.pageSize, 10);
            Assert.AreEqual(viewPagination.viewResult.Count(), 10);
        }
        public ViewPagination Pagination(IEnumerable <Person> result, ViewPagination view, int?pageSize, int?page)
        {
            decimal viewPageSize = pageSize == null ? 10 : pageSize.Value;
            int     viewPage     = page == null ? 0 : page.Value - 1;
            decimal resultCount  = result.Count();

            view.pageSize = (int)viewPageSize;
            decimal calcPageCount = resultCount / viewPageSize;

            view.pageCount = Math.Ceiling(calcPageCount).ToString();
            if (view.pageCount == "0")
            {
                view.pageCount = "1";
            }
            view.viewResult = result.Skip(((int)viewPage) * (int)viewPageSize).Take((int)viewPageSize);
            view.pageNumber = page == null ? 1 : page.Value;
            return(view);
        }
Beispiel #4
0
        //PagedList
        public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page, int?pageSize, string action)
        {
            ViewPagination view = new ViewPagination();

            List <int> pageSizeList = new List <int>()
            {
                10, 50, 100
            };

            ViewBag.pageSize = pageSizeList;

            if (Session.IsNewSession)
            {
                data = personsRepository.InitPersons();
                Session["Persons"] = data;
            }
            else
            {
                data = Session["Persons"] as IEnumerable <Person>;
            }

            var result = data;

            ViewBag.Saved            = SetMessage(action);
            ViewBag.NameSortParm     = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.SocialSortParm   = sortOrder == "Social" ? "social_desc" : "Social";
            ViewBag.TypeSortParm     = sortOrder == "Type" ? "type_desc" : "Type";
            ViewBag.CurrentSort      = sortOrder;
            ViewBag.selectedPageSize = pageSize;
            ViewBag.page             = page;

            // search
            result = SearchArray(currentFilter, searchString, result);

            // filter
            result = SortOrder(sortOrder, result);

            // set up pagination
            view = Pagination(result, view, pageSize, page);

            return(View(view));
        }