Ejemplo n.º 1
0
        public override IEnumerable<IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request) throw new ArgumentNullException("request");
            if (null == results) throw new ArgumentNullException("results");

            var list = new List<IPageLinkModel>();
            var forcePrevNext = ForcePrevNext;
            var requestedPage = request.RequestedPage;

            var testPrev = requestedPage > 0;
            if (forcePrevNext || testPrev) {
                list.Add(new PageLinkModel(request, testPrev ? requestedPage - 1 : requestedPage, PrevText));
            }

            var baseLinker = BaseLinker;
            if (baseLinker != null) {
                list.AddRange(baseLinker.LinkPages(request, results));
            }

            var testNext = requestedPage < results.TotalPageCount - 1;
            if (forcePrevNext || testNext) {
                list.Add(new PageLinkModel(request, testNext ? requestedPage + 1 : requestedPage, NextText));
            }

            return list;
        }
Ejemplo n.º 2
0
        public override IEnumerable<IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request) throw new ArgumentNullException("request");
            if (null == results) throw new ArgumentNullException("results");

            var list = new List<IPageLinkModel>();
            var isBase1 = IsBase1;
            var requestedPage = request.RequestedPage;
            for (var i = 0; i < results.TotalPageCount; i++) {
                list.Add(new PageLinkModel(request, i, isBase1 ? (i + 1).ToString() : i.ToString()));
            }

            return list;
        }
Ejemplo n.º 3
0
        public override IEnumerable<IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request) throw new ArgumentNullException("request");
            if (null == results) throw new ArgumentNullException("results");

            var list = new List<IPageLinkModel>();
            if (results.TotalPageCount > 1) {

                var requestedPage = request.RequestedPage;
                var totalPageCount = results.TotalPageCount;
                var factory = new LinkFactory(request, IsBase1);

                list.Add(factory.CreateLink(0));

                if (requestedPage > 1) {
                    var test = requestedPage == totalPageCount - 1 && totalPageCount > 3;
                    list.Add(factory.CreateRange(1, test ? requestedPage - 3 : requestedPage - 2));
                    if (test) {
                        list.Add(factory.CreateLink(requestedPage - 2));
                    }
                    list.Add(factory.CreateLink(requestedPage - 1));
                }

                if (requestedPage != 0 && requestedPage != totalPageCount - 1) {
                    list.Add(factory.CreateLink(requestedPage));
                }

                if (requestedPage < totalPageCount - 2) {
                    var test = requestedPage == 0 && totalPageCount > 3;
                    list.Add(factory.CreateLink(requestedPage + 1));
                    if (test) {
                        list.Add(factory.CreateLink(requestedPage + 2));
                    }
                    list.Add(factory.CreateRange(test ? requestedPage + 3 : requestedPage + 2, totalPageCount - 2));
                }

                list.Add(factory.CreateLink(totalPageCount - 1));
            }

            return list;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Creates a collection of <see cref="T:IPageLinkModel"/> objects from the specified <paramref name="request"/> and <paramref name="results"/>.
 /// </summary>
 /// <param name="request">The request for which the collection of <see cref="T:IPageLinkModel"/> objects is to be created.</param>
 /// <param name="results">The results for which the collection of <see cref="T:IPageLinkModel"/> objects is to be created.</param>
 /// <returns>A collection of <see cref="T:IPageLinkModel"/> objects from the specified <paramref name="request"/> and <paramref name="results"/>.</returns>
 public abstract IEnumerable<IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results);
Ejemplo n.º 5
0
        public override IEnumerable <IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request)
            {
                throw new ArgumentNullException("request");
            }
            if (null == results)
            {
                throw new ArgumentNullException("results");
            }

            var list          = new List <IPageLinkModel>();
            var forcePrevNext = ForcePrevNext;
            var requestedPage = request.RequestedPage;

            var testPrev = requestedPage > 0;

            if (forcePrevNext || testPrev)
            {
                list.Add(new PageLinkModel(request, testPrev ? requestedPage - 1 : requestedPage, PrevText));
            }

            var baseLinker = BaseLinker;

            if (baseLinker != null)
            {
                list.AddRange(baseLinker.LinkPages(request, results));
            }

            var testNext = requestedPage < results.TotalPageCount - 1;

            if (forcePrevNext || testNext)
            {
                list.Add(new PageLinkModel(request, testNext ? requestedPage + 1 : requestedPage, NextText));
            }

            return(list);
        }
Ejemplo n.º 6
0
        public override IEnumerable <IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request)
            {
                throw new ArgumentNullException("request");
            }
            if (null == results)
            {
                throw new ArgumentNullException("results");
            }

            var list = new List <IPageLinkModel>();

            if (results.TotalPageCount > 1)
            {
                var requestedPage  = request.RequestedPage;
                var totalPageCount = results.TotalPageCount;
                var factory        = new LinkFactory(request, IsBase1);

                list.Add(factory.CreateLink(0));

                if (requestedPage > 1)
                {
                    var test = requestedPage == totalPageCount - 1 && totalPageCount > 3;
                    list.Add(factory.CreateRange(1, test ? requestedPage - 3 : requestedPage - 2));
                    if (test)
                    {
                        list.Add(factory.CreateLink(requestedPage - 2));
                    }
                    list.Add(factory.CreateLink(requestedPage - 1));
                }

                if (requestedPage != 0 && requestedPage != totalPageCount - 1)
                {
                    list.Add(factory.CreateLink(requestedPage));
                }

                if (requestedPage < totalPageCount - 2)
                {
                    var test = requestedPage == 0 && totalPageCount > 3;
                    list.Add(factory.CreateLink(requestedPage + 1));
                    if (test)
                    {
                        list.Add(factory.CreateLink(requestedPage + 2));
                    }
                    list.Add(factory.CreateRange(test ? requestedPage + 3 : requestedPage + 2, totalPageCount - 2));
                }

                list.Add(factory.CreateLink(totalPageCount - 1));
            }

            return(list);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Creates a collection of <see cref="T:IPageLinkModel"/> objects from the specified <paramref name="request"/> and <paramref name="results"/>.
 /// </summary>
 /// <param name="request">The request for which the collection of <see cref="T:IPageLinkModel"/> objects is to be created.</param>
 /// <param name="results">The results for which the collection of <see cref="T:IPageLinkModel"/> objects is to be created.</param>
 /// <returns>A collection of <see cref="T:IPageLinkModel"/> objects from the specified <paramref name="request"/> and <paramref name="results"/>.</returns>
 public abstract IEnumerable <IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results);
Ejemplo n.º 8
0
        public override IEnumerable <IPageLinkModel> LinkPages(IPageRequestModel request, IPageResultsModel results)
        {
            if (null == request)
            {
                throw new ArgumentNullException("request");
            }
            if (null == results)
            {
                throw new ArgumentNullException("results");
            }

            var list          = new List <IPageLinkModel>();
            var isBase1       = IsBase1;
            var requestedPage = request.RequestedPage;

            for (var i = 0; i < results.TotalPageCount; i++)
            {
                list.Add(new PageLinkModel(request, i, isBase1 ? (i + 1).ToString() : i.ToString()));
            }

            return(list);
        }