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); }
// 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()); }