Esempio n. 1
0
        //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));
        }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
        /// <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();
        }
Esempio n. 4
0
        /// <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;
		}
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
        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
            });
        }
Esempio n. 11
0
        /// <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}"));
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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}}}");
        }
Esempio n. 15
0
 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));
 }
Esempio n. 19
0
        public override void Combine(IPaged pagedObject)
        {
            ArtistList otherArtistList = (ArtistList)pagedObject;

            this.ArtistGroup.Combine(otherArtistList.ArtistGroup);
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
 public override void Combine(IPaged pagedObject)
 {
     AlbumInfoList otherInfoList = (AlbumInfoList)pagedObject;
     this.Items.AddRange(otherInfoList.Items);
 }
Esempio n. 22
0
        public override void Combine(IPaged pagedObject)
        {
            ArtistList otherArtistList = (ArtistList)pagedObject;

            this.ArtistGroup.Combine(otherArtistList.ArtistGroup);
        }
Esempio n. 23
0
        public override void Combine(IPaged pagedObject)
        {
            ArtistItems otherArtistList = (ArtistItems)pagedObject;

            this.Items.AddRange(otherArtistList.Items);
        }
Esempio n. 24
0
 /// <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;
 }
Esempio n. 25
0
 public override void Combine(IPaged pagedObject)
 {
     PlaylistInfoList otherInfoList = (PlaylistInfoList)pagedObject;
     this.Playlists.AddRange(otherInfoList.Playlists);
 }
Esempio n. 26
0
 public object BuildCollectionMetadata(IPaged paged)
 {
     return(new { Count = paged.Count, Page = new { Number = paged.PageNumber, Size = paged.PageSize } });
 }
Esempio n. 27
0
 public static string PagerNum(this IPaged pager)
 {
     return(PagerNum(pager, "", 5, false));
 }
Esempio n. 28
0
        public override void Combine(IPaged pagedObject)
        {
            AlbumInfoList otherInfoList = (AlbumInfoList)pagedObject;

            this.Items.AddRange(otherInfoList.Items);
        }
Esempio n. 29
0
        public override void Combine(IPaged pagedObject)
        {
            ArtistGroup otherArtistList = (ArtistGroup)pagedObject;

            this.Artists.AddRange(otherArtistList.Artists);
        }
Esempio n. 30
0
 public IActionResult Index(IPaged paged)
 {
     return(View(_categoryRepository.GetPaged(paged)));
 }
Esempio n. 31
0
        public override void Combine(IPaged pagedObject)
        {
            PlaylistInfoList otherInfoList = (PlaylistInfoList)pagedObject;

            this.Playlists.AddRange(otherInfoList.Playlists);
        }
Esempio n. 32
0
        public override void Combine(IPaged pagedObject)
        {
            FollowedArtistList otherArtistList = (FollowedArtistList)pagedObject;

            this.ArtistItems.Combine(otherArtistList.ArtistItems);
        }
Esempio n. 33
0
 private static bool HasPreviousPage(IPaged target)
 {
     return(target?.Page > 1);
 }
Esempio n. 34
0
 /// <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;
 }
Esempio n. 35
0
        public override void Combine(IPaged pagedObject)
        {
            ArtistGroup otherArtistList = (ArtistGroup)pagedObject;

            this.Artists.AddRange(otherArtistList.Artists);
        }
Esempio n. 36
0
        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));
        }