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