/// <summary> /// Queryable page /// </summary> /// <param name="queryable"></param> /// <param name="currentPageNumber"></param> /// <param name="pageSize"></param> /// <param name="totalMemberCount"></param> public QueryablePage(IQueryable <T> queryable, int currentPageNumber, int pageSize, int totalMemberCount) : base() { var skip = (currentPageNumber - 1) * pageSize; var state = new QueryEntryState <T>(queryable, skip, pageSize); InitializeMetaInfo()(currentPageNumber)(pageSize)(totalMemberCount)(skip)(); base._initializeAction = InitializeMemberList()(state)(CurrentPageSize)(skip); }
internal PageMember(QueryEntryState <T> state, int offset, ref int startIndex) { if (offset < 0) { throw new ArgumentOutOfRangeException(nameof(offset), "offset can not be less than zero."); } _startIndex = startIndex; _memberValue = default(T); _offset = offset; _state = state; }
internal PageMember(T memberValue, int offset, ref int startIndex) { if (offset < 0) { throw new ArgumentOutOfRangeException(nameof(offset), "offset can not be less than zero."); } _startIndex = startIndex; _memberValue = memberValue; _offset = offset; _state = null; }
public QueryablePage(IQueryable <T> queryable, int currentPageNumber, int pageSize, int totalMembersCount) : base() { var skip = (currentPageNumber - 1) * pageSize; var state = new QueryEntryState <T>(queryable, skip, pageSize); base.TotalPageCount = (int)Math.Ceiling((double)totalMembersCount / (double)pageSize); base.TotalMemberCount = totalMembersCount; base.CurrentPageNumber = currentPageNumber; base.PageSize = pageSize; base.CurrentPageSize = currentPageNumber == TotalPageCount ? totalMembersCount % skip : pageSize; base.HasPrevious = currentPageNumber > 1; base.HasNext = currentPageNumber < totalMembersCount; base.m_initializeAction = InitializeMemberList()(state)(CurrentPageSize)(skip); base.m_initializeAction(); }