Exemplo n.º 1
0
        /// <summary>
        /// Merge paging
        /// </summary>
        /// <typeparam name="TEntity">Entity type</typeparam>
        /// <param name="originalPaging">Original paging</param>
        /// <param name="query">Query object</param>
        /// <returns>Return the newest data paging</returns>
        public static IPaging <TEntity> MergePaging <TEntity>(IPaging <TEntity> originalPaging, IQuery query) where TEntity : BaseEntity <TEntity>, new()
        {
            if (originalPaging == null)
            {
                originalPaging = Pager.Empty <TEntity>();
            }
            var totalCount   = originalPaging.TotalCount;
            var dataCount    = originalPaging.Count();
            var datas        = Merge(originalPaging, query, true);
            var newDataCount = datas.Count;
            var diffCount    = newDataCount - dataCount;

            totalCount += diffCount;
            if (newDataCount > originalPaging.PageSize)
            {
                datas = datas.Take(originalPaging.PageSize).ToList();
            }
            return(Pager.Create <TEntity>(originalPaging.Page, originalPaging.PageSize, totalCount, datas));
        }
Exemplo n.º 2
0
        /// <summary>
        /// merge paging
        /// </summary>
        /// <typeparam name="ET"></typeparam>
        /// <param name="originPaging">origin paging</param>
        /// <param name="query">query</param>
        /// <returns></returns>
        public static IPaging <ET> MergePaging <ET>(IPaging <ET> originPaging, IQuery query) where ET : BaseEntity <ET>
        {
            if (originPaging == null)
            {
                originPaging = Paging <ET> .EmptyPaging();
            }
            var totalCount   = originPaging.TotalCount;
            var dataCount    = originPaging.Count();
            var datas        = Merge(originPaging, query, true);
            var newDataCount = datas.Count;
            var diffCount    = newDataCount - dataCount;

            totalCount += diffCount;
            if (newDataCount > originPaging.PageSize)
            {
                datas = datas.Take(originPaging.PageSize).ToList();
            }
            return(new Paging <ET>(originPaging.Page, originPaging.PageSize, totalCount, datas));
        }