Пример #1
0
        /// <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);
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }
Пример #4
0
        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();
        }