コード例 #1
0
ファイル: BaseRepository.cs プロジェクト: shiqirong/SqrProj
        /// <summary>
        /// 分页
        /// </summary>
        /// <typeparam name="TKey"></typeparam>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="where"></param>
        /// <param name="keySelector"></param>
        /// <param name="isAsc"></param>
        /// <returns></returns>
        public virtual PagingOutput <T> GetPageList <TKey>(int pageIndex, int pageSize, Expression <Func <T, bool> > where, Expression <Func <T, TKey> > keySelector = null, bool isAsc = true)
        {
            PagingOutput <T> output = new PagingOutput <T>()
            {
                PageIndex = pageIndex,
                PageSize  = pageSize
            };

            using (var dbContext = new DcContext())
            {
                var query = dbContext.Set <T>().Where(where);
                output.Total = query.Count();
                if (keySelector != null)
                {
                    if (isAsc)
                    {
                        query = query.OrderBy(keySelector);
                    }
                    else
                    {
                        query = query.OrderByDescending(keySelector);
                    }
                }
                output.Rows = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            }
            return(output);
        }
コード例 #2
0
ファイル: RolesController.cs プロジェクト: srgzr/Clinic
        /// <summary>
        /// просмотр информации о ролях
        /// </summary>
        public ActionResult Index(int page = 1, int pageSize = 10)
        {
            var data  = RoleManager.Roles;
            var total = data.Count();

            var model = new PagingOutput <RoleInfo>
            {
                Data         = data,
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = total
            };

            return(View(model));
        }
コード例 #3
0
ファイル: vcPaging.cs プロジェクト: SyPham/TauThuyenViet
        public IViewComponentResult Invoke(int page, int totalItems, int pageSize, string url, int maxPage = 10)
        {
            int totalPages = (int)Math.Ceiling((double)totalItems / pageSize);

            int pageFirst = 1;
            int pageLast  = totalPages;

            int pageBack = page - 1;

            if (pageBack < 1)
            {
                pageBack = 1;
            }

            int pageNext = page + 1;

            if (pageNext > totalPages)
            {
                pageNext = totalPages;
            }

            string pageFirstUrl = string.Format(url, pageFirst);
            string pageLastUrl  = string.Format(url, pageLast);
            string pageBackUrl  = string.Format(url, pageBack);
            string pageNextUrl  = string.Format(url, pageNext);

            PagingOutput output = new PagingOutput
            {
                Page         = page,
                PageFirstUrl = pageFirstUrl,
                PageLastUrl  = pageLastUrl,
                PageBackUrl  = pageBackUrl,
                PageNextUrl  = pageNextUrl
            };

            ViewBag.PagingOutput = output;



            Dictionary <int, string> pageNumbers = new Dictionary <int, string>();

            for (int i = 1; i <= totalPages; i++)
            {
                pageNumbers.Add(i, string.Format(url, i));
            }

            return(View(pageNumbers));
        }
コード例 #4
0
        /// <summary>
        /// Список
        /// </summary>
        /// <param name="page">страница</param>
        /// <param name="pageSize">количество элементов на странице</param>
        /// <returns>Список типов занятий</returns>
        public async Task <ViewResult> Index(int page = 1, int pageSize = 5)
        {
            var data = await _positionService.GetAllAsync();

            var total = data.Count();

            var model = new PagingOutput <Position>
            {
                Data         = data,
                CurrentPage  = page,
                ItemsPerPage = pageSize,
                TotalItems   = total
            };

            return(View(model));
        }
コード例 #5
0
        /// <summary>
        /// Creates a GraphQL connection from a paging output object.
        /// </summary>
        /// <typeparam name="T">The model generic type parameter.</typeparam>
        /// <param name="pagingOutput">The paging output object.</param>
        /// <returns>The GraphQL connection.</returns>
        public static Connection <T> ToConnection <T>(this PagingOutput <T> pagingOutput)
            where T : BaseTimedObject
        {
            var edges = pagingOutput.Result.Select((status, i) => new Edge <T>
            {
                Node   = status,
                Cursor = status.ID.ToString()
            }).ToList();

            return(new Connection <T>()
            {
                Edges = edges,
                TotalCount = pagingOutput.TotalCount,
                PageInfo = new PageInfo
                {
                    StartCursor = edges.FirstOrDefault()?.Cursor,
                    EndCursor = edges.LastOrDefault()?.Cursor,
                    HasPreviousPage = pagingOutput.HasPreviousPage,
                    HasNextPage = pagingOutput.HasNextPage,
                }
            });
        }