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