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; }
/// <summary> /// Creates an instance of <see cref="T:RouteValueDictionary"/> that contains the route information /// necessary to duplicate the <paramref name="pageRequestModel"/> for the given <paramref name="requestedPage"/>. /// </summary> /// <param name="pageRequestModel">The model for which the <see cref="T:RouteValueDictionary"/> is created.</param> /// <param name="requestedPage">The requested page for which the <see cref="T:RouteValueDictionary"/> is created.</param> /// <returns> /// A new instance of <see cref="T:RouteValueDictionary"/> with the route information necessary to /// duplicate the <paramref name="pageRequestModel"/> for the given <paramref name="requestedPage"/>. /// </returns> public static RouteValueDictionary GetRouteValues(this IPageRequestModel pageRequestModel, int requestedPage) { if (null == pageRequestModel) { throw new ArgumentNullException("pageRequestModel"); } return(new RouteValueDictionary(pageRequestModel.GetRequestValues(requestedPage))); }
public LinkFactory(IPageRequestModel request, bool isBase1) { if (null == request) { throw new ArgumentNullException("request"); } _Request = request; _IsBase1 = isBase1; }
protected PageLinkModelBase(IPageRequestModel request, string linkText, int lowerPage, int upperPage) { if (null == request) throw new ArgumentNullException("request"); _Request = request; _LinkPage = lowerPage; _LinkText = linkText; _LowerPage = lowerPage; _UpperPage = upperPage; _IsPageRange = true; _IsRequestedPage = false; }
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); }
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; }
protected PageLinkModelBase(IPageRequestModel request, string linkText, int lowerPage, int upperPage) { if (null == request) { throw new ArgumentNullException("request"); } _Request = request; _LinkPage = lowerPage; _LinkText = linkText; _LowerPage = lowerPage; _UpperPage = upperPage; _IsPageRange = true; _IsRequestedPage = false; }
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; }
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); }
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); }
/// <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);
/// <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);
public PageRangeModel(IPageRequestModel request, int lowerPage, int upperPage) : base(request, "...", lowerPage, upperPage) { }
public LinkFactory(IPageRequestModel request, bool isBase1) { if (null == request) throw new ArgumentNullException("request"); _Request = request; _IsBase1 = isBase1; }
public PageLinkModel(IPageRequestModel request, int linkPage, string linkText) : base(request, linkPage, linkText) { }