Example #1
0
        public JsonResult GetAllTasks(int limit, int offset, string sortfiled, string sortway, string search,
                                      string status)
        {
            var       sort = !string.IsNullOrEmpty(sortfiled) ? string.Format("{0} {1}", sortfiled, sortway) : "";
            TaskState currentState;

            if (!string.IsNullOrEmpty(status))
            {
                Enum.TryParse(status, true, out currentState);
            }

            var filter = new GetTasksInput
            {
                SkipCount      = offset,
                MaxResultCount = limit,
                Sorting        = sort,
                Filter         = search
            };

            if (!string.IsNullOrEmpty(status))
            {
                if (Enum.TryParse(status, true, out currentState))
                {
                    filter.State = currentState;
                }
            }

            var pagedTasks = _taskAppService.GetPagedTasks(filter);


            return(Json(new { total = pagedTasks.TotalCount, rows = pagedTasks.Items }, JsonRequestBehavior.AllowGet));
        }
        public void Should_Get_Paged_Task()
        {
            //Arrange(取第三页)
            var filter = new GetTasksInput()
            {
                MaxResultCount = 2,
                SkipCount      = 4
            };
            var totalTaskCount      = UsingDbContext(ctx => ctx.Tasks.Count());
            var thirdPageItemsCount = totalTaskCount > 3 * filter.MaxResultCount ? filter.MaxResultCount : totalTaskCount - filter.SkipCount;

            //act
            var result = _taskAppService.GetPagedTasks(filter);

            //Assert
            result.TotalCount.ShouldBe(totalTaskCount);
            result.Items.Count.ShouldBe(thirdPageItemsCount);
        }
Example #3
0
        // GET: Tasks
        public ActionResult PagedList(int?page)
        {
            //每页行数
            var pageSize   = 5;
            var pageNumber = page ?? 1; //第几页

            var filter = new GetTasksInput
            {
                SkipCount      = (pageNumber - 1) * pageSize, //忽略个数
                MaxResultCount = pageSize
            };
            var result = _taskAppService.GetPagedTasks(filter);

            //已经在应用服务层手动完成了分页逻辑,所以需手动构造分页结果
            var onePageOfTasks = new StaticPagedList <TaskDto>(result.Items, pageNumber, pageSize, result.TotalCount);

            //将分页结果放入ViewBag供View使用
            ViewBag.OnePageOfTasks = onePageOfTasks;

            return(View());
        }