Example #1
0
        public IActionResult GetAllByPage(PaginatorModel page)
        {
            if (page == null)
            {
                page = new PaginatorModel();
            }
            else
            {
                //if (page.PageIndex == 0) page.PageIndex = 1;
                if (page.PageSize == 0)
                {
                    page.PageIndex = 10;
                }
            }
            var totalCount = _service.Queryable().Count();
            var sort       = PaginatorHelp.GetSortString(page);
            IQueryable <TEntity> queryable = null;

            //SQL Server 2008以上版本的分頁寫法
            //if (!string.IsNullOrEmpty(sort))
            //    queryable = _service.Queryable().OrderBy(sort);
            //else
            //    queryable = _service.Queryable();

            //SQL Server 2008以下版本的分頁寫法
            // queryable = _service.Queryable().OrderBy(sort).Skip((page.PageIndex-1) * page.PageSize).Take(page.PageSize);
            queryable = _service.Queryable().OrderBy(sort).Skip((page.PageIndex) * page.PageSize).Take(page.PageSize);

            var result = _mapper.Map <List <T> >(queryable);
            var model  = new { total_count = totalCount, data = result };

            return(Success(model));
        }
Example #2
0
        /// <summary>
        /// 取得排序字串
        /// </summary>
        /// <param name="page">PaginatorModel</param>
        /// <returns></returns>
        public static string GetSortString(PaginatorModel page)
        {
            if (string.IsNullOrEmpty(page.Sort))
            {
                return("CreatedAt asc");
            }
            string[] orderArray = null;

            string sortString = string.Empty;

            string[] sortArray = page.Sort.Split(',');
            if (!string.IsNullOrEmpty(page.Order))
            {
                orderArray = page.Order.Split(',');
            }
            for (int i = 0; i < sortArray.Length; i++)
            {
                string order =
                    (orderArray == null || string.IsNullOrEmpty(orderArray[i])) ? "asc" : orderArray[i];
                sortString += $"{sortArray[i]} {order},";
            }
            return(sortString.Length > 1 ? sortString.TrimEnd(',') : null);
        }
Example #3
0
 private IQueryable <TEntity> ApplySorting(IQueryable <TEntity> query, PaginatorModel page)
 {
     return(query.OrderBy(PaginatorHelp.GetSortString(page)));
 }
 public StrainDatasQueryResultView()
 {
     DataQueryResults = new List <StrainDatasView>();
     ResultStatistics = new List <ResultStatisticsView>();
     PaginatorModel   = new PaginatorModel();
 }