//WebForm //直接使用list.PagerNum public static string PagerNum(this IPaged pager, string url = "", int extendPage = 5, bool isHtml = false) { //读取配置文件PageSize //if (pager.PageSize == MaxRows.ConfigPageSize) // pager.PageSize = ConfigManager.Current.PageSize; if (pager.TotalItemCount <= pager.PageSize) { return(""); } string pageStr = ""; if (isHtml) { pageStr = GetPageHtmlNumbers(pager.PageIndex, pager.TotalPageCount, url, extendPage); } else { pageStr = GetPageNumbers(pager.PageIndex, pager.TotalPageCount, url, extendPage); } return(string.Format("<span class=\"text\">页次:{0}/{1} 每页:{2} 条 共:{3} 条</span>{4}", pager.PageIndex, pager.TotalPageCount, pager.PageSize, pager.TotalItemCount, pageStr)); }
public PagedList <Category> GetPaged(IPaged paged) { return(TableNoTracking .Where(p => p.ParentId == null) .Include(p => p.Categories) .PagedList(paged.PageIndex, paged.PageSize, paged.SearchByPropertyName, paged.SearchByText, paged.OrderByPropertyName, paged.OrderByDescending)); }
/// <summary> /// Initializes a new instance of the <see cref="PagedData{T}"/> class. /// </summary> /// <param name="paged">The pagination.</param> /// <param name="data">The pagination data.</param> public PagedData(IPaged paged, IEnumerable <T> data) : this(paged) { this.Data = data; this.To = this.From + data.Count(); }
/// <summary> /// Object-object mapping for Paged /// </summary> public static IPaged <TTo> MapPaged <TTo>(this IPaged source) where TTo : new() { var toItems = source.Items.MapList <TTo>(); var toPaged = new PagedList <TTo>(toItems, source.RecordTotal, source.PageIndex, source.PageSize); return(toPaged); }
public static IPaged Merge(this IPaged subject, IPaged source) { subject.CurrentIndex = source.CurrentIndex; subject.PageSize = source.PageSize; subject.TotalRecords = source.TotalRecords; return subject; }
public static IPaged <TOut> Convert <TIn, TOut>(this IPaged <TIn> input, Func <TIn, TOut> func) { var items = new List <TOut>(); foreach (var item in input) { items.Add(func(item)); } return(new Paged <TOut>(items, input.TotalCount, input.PageSize, input.PageIndex, input.TotalPages)); }
private static bool HasNextPage(IPaged target) { if (target.TotalItemCount.HasValue && target.PageSize.HasValue) { var pageCount = target?.TotalItemCount > 0 ? (int)Math.Ceiling((double)target.TotalItemCount / (double)target.PageSize) : 0; return(target?.Page < pageCount); } return(false); }
public static IPagedMutable <T> ToMutable <T>(this IPaged <T> input) { var response = new PagedMutable <T>(input) { TotalCount = input.TotalCount, PageSize = input.PageSize, PageIndex = input.PageIndex, TotalPages = input.TotalPages }; response.CalculatePagination(); return(response); }
private static void ValidatePaged <T>(IPaged paged) { var type = typeof(T); if (paged.SortColumn == null) { if (type.GetProperty("Id") != null) { paged.SortColumn = "Id"; } } else if (type.GetProperty(paged.SortColumn) == null) { throw new ValidationGenericException(paged.SortColumn + " não existe em " + type.Name); } }
protected static FilterResult <T> Paginate <T>(IPaged paged, IQueryable <T> query) { ValidatePaged <T>(paged); if (paged.SortColumn != null) { query = paged.SortAsc ? query.OrderBy(e => EF.Property <T>(e, paged.SortColumn)) : query.OrderByDescending(e => EF.Property <T>(e, paged.SortColumn)); } var total = query.Count(); var result = query.Skip(paged.Size * (paged.Page - 1)).Take(paged.Size).ToList(); return(new FilterResult <T> { Total = total, Items = result }); }
/// <summary> /// Gets paged users from database. /// </summary> /// <param name="paged">The pagination.</param> /// <returns> /// Collection of all users. /// </returns> public async Task <IPagedData <User> > All(IPaged paged) { var total = await this.Context.Users.CountAsync(); var data = this.Context.Users .Take(paged.PerPage) .OrderBy(user => user.Id) .Skip(paged.Skip) .Select(user => new User { Id = user.Id, Email = user.Email, Username = user.Username, Name = user.Name, Surname = user.Surname, }) .ToList(); return(new PagedData <User>(paged, data, total)); }
public static String ToId(this IPaged paged) { var properties = paged.GetType() .GetProperties(BindingFlags.Instance | BindingFlags.Public) .Select(x => { var val = x.GetValue(paged); if (val == null) { return(null); } return(x.Name + ":" + val.ToString()); }).Where(x => x != null); if (properties.Count() == 0) { return(""); } return(properties.Aggregate((cur, next) => $"{cur};{next}")); }
public CollectionLinks BuildCollectionLinks(string path, QuerySet query, IPaged paged) { var links = new CollectionLinks(); var includeQuery = BuildIncludeQuery(query.Include.Fields); var sortQuery = BuildSortQuery(query.Sort.Field, query.Sort.Order); links.Self = $"{path}?{String.Join("&", new List<string>() { BuildPaginationQuery(paged.PageSize, paged.PageNumber), includeQuery, sortQuery }.FindAll(q => q != null))}"; links.First = $"{path}?{String.Join("&", new List<string>() { BuildPaginationQuery(paged.PageSize, paged.First), includeQuery, sortQuery }.FindAll(q => q != null))}"; links.Last = $"{path}?{String.Join("&", new List<string>() { BuildPaginationQuery(paged.PageSize, paged.Last), includeQuery, sortQuery }.FindAll(q => q != null))}"; if (paged.HasPrev) { links.Prev = $"{path}?{String.Join("&", new List<string>() { BuildPaginationQuery(paged.PageSize, paged.Prev), includeQuery, sortQuery }.FindAll(q => q != null))}"; } if (paged.HasNext) { links.Next = $"{path}?{String.Join("&", new List<string>() { BuildPaginationQuery(paged.PageSize, paged.Next), includeQuery, sortQuery }.FindAll(q => q != null))}"; } return(links); }
public static string ToId(this IPaged paged) { if (paged == null) { return("{}"); } var properties = paged.GetType() .GetProperties(BindingFlags.Instance | BindingFlags.Public) .Select(x => { var val = x.GetValue(paged); if (val == null) { return(x.Name + ":"); } return(x.Name + ":" + val.ToString()); }); var id = properties.Aggregate((cur, next) => $"{cur};{next}"); return($"{{{id}}}"); }
public override void Combine(IPaged pagedObject) { AlbumTrackList otherInfoList = (AlbumTrackList)pagedObject; this.Tracks.AddRange(otherInfoList.Tracks); }
/// <summary> /// Get outbox of the specified user. /// </summary> /// <param name="user">The user.</param> /// <param name="paged">The pagination.</param> /// <returns> /// A <see cref="Task" /> representing the asynchronous operation of /// sent messages. /// </returns> public Task <IPagedData <Message> > Outbox(User user, IPaged paged) { throw new NotImplementedException(); }
public static SearchDescriptor <T> Paging <T>(this SearchDescriptor <T> descriptor, IPaged request) where T : class { if (request.Skip.HasValue) { descriptor = descriptor.Skip(request.Skip.Value); } if (request.Take.HasValue) { descriptor = descriptor.Take(request.Take.Value); } if (request.Filter != null) { descriptor = descriptor.PostFilter(f => f.Grid(request.Filter)); } if (request.Sort != null && request.Sort.Any()) { descriptor = descriptor.Sort(request.Sort); } return(descriptor); }
public PagedList <AdPost> GetPaged(IPaged paged) { return(TableNoTracking.PagedList(paged.PageIndex, paged.PageSize, paged.SearchByPropertyName, paged.SearchByText, paged.OrderByPropertyName, paged.OrderByDescending)); }
public override void Combine(IPaged pagedObject) { ArtistList otherArtistList = (ArtistList)pagedObject; this.ArtistGroup.Combine(otherArtistList.ArtistGroup); }
protected IList <T> CrearJGrid <T>(IPaged <T> iPaged, GridTable gridTable, string [] nombreFiltros, ref JGrid jGrid) where T : class { var totalPaginas = 0; var filtros = new List <object>(); if (!string.IsNullOrEmpty(gridTable.filters)) { var filters = JsonConvert.DeserializeObject <JOERP.Helpers.JqGrid.Filter>(gridTable.filters); foreach (var nombreFiltro in nombreFiltros) { var filtro = filters.rules.FirstOrDefault(p => p.field == nombreFiltro); filtros.Add(filtro == null ? null : filtro.data); } } else { foreach (var nombreFiltro in nombreFiltros) { filtros.Add(null); } } if (gridTable.rules != null) { var index = 0; foreach (var nombreFiltro in nombreFiltros) { foreach (var rule in gridTable.rules) { if (rule.field != nombreFiltro) { continue; } filtros[index] = rule.data; } index++; } } var cantidad = iPaged.Count(filtros.ToArray()); gridTable.page = (gridTable.page == 0) ? 1 : gridTable.page; gridTable.rows = (gridTable.rows == 0) ? 100 : gridTable.rows; if (cantidad > 0 && gridTable.rows > 0) { var div = cantidad / (decimal)gridTable.rows; var round = Math.Ceiling(div); totalPaginas = Convert.ToInt32(round); totalPaginas = totalPaginas == 0 ? 1 : totalPaginas; } gridTable.page = gridTable.page > totalPaginas ? totalPaginas : gridTable.page; var start = gridTable.rows * gridTable.page - gridTable.rows; if (start < 0) { start = 0; } jGrid.total = totalPaginas; jGrid.page = gridTable.page; jGrid.records = cantidad; jGrid.start = start; filtros.Insert(0, gridTable.sidx); filtros.Insert(1, gridTable.sord); filtros.Insert(2, gridTable.rows); filtros.Insert(3, start); filtros.Insert(4, cantidad); var lista = iPaged.GetPaged(filtros.ToArray()); return(lista); }
public override void Combine(IPaged pagedObject) { AlbumInfoList otherInfoList = (AlbumInfoList)pagedObject; this.Items.AddRange(otherInfoList.Items); }
public override void Combine(IPaged pagedObject) { ArtistItems otherArtistList = (ArtistItems)pagedObject; this.Items.AddRange(otherArtistList.Items); }
/// <summary> /// Initializes a new instance of the <see cref="PagedData{T}"/> class. /// </summary> /// <param name="paged">The pagination.</param> public PagedData(IPaged paged) { this.Page = paged.Page; this.PerPage = paged.PerPage; this.From = (paged.Page * paged.PerPage) - paged.PerPage; }
public override void Combine(IPaged pagedObject) { PlaylistInfoList otherInfoList = (PlaylistInfoList)pagedObject; this.Playlists.AddRange(otherInfoList.Playlists); }
public object BuildCollectionMetadata(IPaged paged) { return(new { Count = paged.Count, Page = new { Number = paged.PageNumber, Size = paged.PageSize } }); }
public static string PagerNum(this IPaged pager) { return(PagerNum(pager, "", 5, false)); }
public override void Combine(IPaged pagedObject) { ArtistGroup otherArtistList = (ArtistGroup)pagedObject; this.Artists.AddRange(otherArtistList.Artists); }
public IActionResult Index(IPaged paged) { return(View(_categoryRepository.GetPaged(paged))); }
public override void Combine(IPaged pagedObject) { FollowedArtistList otherArtistList = (FollowedArtistList)pagedObject; this.ArtistItems.Combine(otherArtistList.ArtistItems); }
private static bool HasPreviousPage(IPaged target) { return(target?.Page > 1); }
/// <summary> /// Initializes a new instance of the <see cref="PagedData{T}"/> class. /// </summary> /// <param name="paged">The pagination.</param> /// <param name="data">The pagination data.</param> /// <param name="total">The total count of available data.</param> public PagedData(IPaged paged, IEnumerable <T> data, int total) : this(paged, data) { this.Total = total; }
public static IPaged <TK> Convert <T, TK>(this IPaged <T> paged, Func <T, TK> convertor) { var ks = paged.Items.ToList().Select(e => convertor.Invoke(e)).ToList(); return(new PagedList <TK>(ks, paged.RecordTotal, paged.PageIndex, paged.PageSize)); }