public async Task <JsonResult> Get(int pageIndex, int pageSize, string pageOrder, int?productID, string question, sbyte questionStatus) { QuestionStatus?status = null; if (questionStatus != -1) { status = (QuestionStatus)questionStatus; } if (pageOrder.Trim() == "ID") { pageOrder = "LastUpdate Desc"; } var list = ProductQuestions.Get(pageIndex, pageSize, pageOrder, productID, question, status); foreach (var item in list) { item.UserFullName = item.UserID != null ? (await UserManager.FindByIdAsync(item.UserID)).Firstname + " " + (await UserManager.FindByIdAsync(item.UserID)).Lastname : item.UserName; } int total = ProductQuestions.Count(productID, question, status); int totalPage = (int)Math.Ceiling((decimal)total / pageSize); if (pageSize > total) { pageSize = total; } if (list.Count < pageSize) { pageSize = list.Count; } JsonResult result = new JsonResult() { Data = new { TotalPages = totalPage, PageIndex = pageIndex, PageSize = pageSize, Rows = list }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; return(result); }