Ejemplo n.º 1
0
        public static PagedInfo <T> ToPage <T>(this ISugarQueryable <T> source, Expression <Func <T, bool> > where, PageParm parm)
        {
            source = source.Where(where);
            var page  = new PagedInfo <T>();
            var total = source.Count();

            page.TotalCount = total;
            page.TotalPages = total / parm.PageSize;

            if (total % parm.PageSize > 0)
            {
                page.TotalPages++;
            }

            page.PageSize  = parm.PageSize;
            page.PageIndex = parm.PageIndex;

            //排序字段新增中括号([])防止命名为数据库内置字段报错
            //新增多字段排序
            if (!string.IsNullOrEmpty(parm.OrderBy))
            {
                string[] orderbys = parm.OrderBy.Split(',');
                string[] sorts    = parm.Sort.Split(',');
                for (int i = 0; i < orderbys.Length; i++)
                {
                    string sort = sorts.Length == orderbys.Length ? sorts[i] : "asc";
                    source.OrderBy($"[{orderbys[i]}] {(sort == "desc" ? "desc" : "asc")}");
                }
            }
            page.DataSource = source.ToPageList(parm.PageIndex, parm.PageSize);
            return(page);
        }
Ejemplo n.º 2
0
        public PagedInfo Get(string Name = null, string Cid = null, int index = 1, int PageSize = 3)
        {
            var list = bll.Show();

            if (!string.IsNullOrEmpty(Name))
            {
                list = list.Where(s => s.CorpName.Contains(Name)).ToList();
            }
            if (!string.IsNullOrEmpty(Cid))
            {
                list = list.Where(s => s.CorpModelCid == int.Parse(Cid)).ToList();
            }
            PagedInfo pInfo = new PagedInfo();

            pInfo.TotalConut = list.Count;
            if (pInfo.TotalConut % PageSize == 0)
            {
                pInfo.TotalPage = pInfo.TotalConut / PageSize;
            }
            else
            {
                pInfo.TotalPage = (pInfo.TotalConut / PageSize) + 1;
            }
            if (index < 1)
            {
                index = 1;
            }
            if (index > pInfo.TotalPage)
            {
                index = pInfo.TotalPage;
            }
            pInfo.musics      = list.Skip(PageSize * (index - 1)).Take(PageSize).ToList();
            pInfo.currentPage = index;
            return(pInfo);
        }
Ejemplo n.º 3
0
        public static PagerModel MapToPagerModel(this PagedInfo pagedInfo, string baseUrl, int sortBy, string sortParam)
        {
            var retPagerModel = new PagerModel(baseUrl,
                                               pagedInfo.CurrentPage,
                                               sortBy,
                                               sortParam,
                                               pagedInfo.TotalPages);

            return(retPagerModel);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 根据条件查询分页数据
        /// </summary>
        /// <param name="where"></param>
        /// <param name="parm"></param>
        /// <returns></returns>
        public PagedInfo <T> GetPages(Expression <Func <T, bool> > where, PageParm parm)
        {
            PagedInfo <T> page = new PagedInfo <T>();

            int totalCount = 0, totalPages = 0;

            page.DataSource = Db.Queryable <T>().Where(where)
                              .OrderByIF(!string.IsNullOrEmpty(parm.Sort), $"{ parm.OrderBy } {(parm.Sort == "descending" ? "desc" : "asc")}")
                              .ToPageList(parm.PageIndex, parm.PageSize, ref totalCount, ref totalPages);

            page.PageSize   = parm.PageSize;
            page.PageIndex  = parm.PageIndex;
            page.TotalCount = totalCount;
            page.TotalPages = totalPages;

            return(page);
        }
Ejemplo n.º 5
0
        PagedList <UserStub> IUserRepository.GetUsersPage(DataItemPageRequest dataItemPageRequest)
        {
            var retPagedList = new PagedList <UserStub>();

            using (var cn = new SqlConnection(_connStr))
            {
                using (var cmd = new SqlCommand("uspGetAspNetIdentityUsersPaged", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@PageNum", dataItemPageRequest.PageNumber);
                    cmd.Parameters.AddWithValue("@PageSize", dataItemPageRequest.PageSize);
                    cmd.Parameters.AddWithValue("@SortOrder", dataItemPageRequest.SortBy);

                    cn.Open();
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var usrStub = new UserStub()
                            {
                                Id          = reader.GetInt64(0),
                                FirstName   = reader.GetString(2),
                                LastName    = reader.GetString(3),
                                CompanyName = reader.GetString(5),
                                IsaActive   = reader.GetBoolean(6)
                            };
                            retPagedList.ItemList.Add(usrStub);
                        }
                        reader.NextResult();
                        if (reader.Read())
                        {
                            var pagedInfo = new PagedInfo()
                            {
                                TotalPages  = reader.GetInt32(0),
                                CurrentPage = reader.GetInt32(1),
                                TotalItems  = reader.GetInt32(2),
                                PageSize    = reader.GetInt32(3)
                            };
                            retPagedList.PagedListInfo = pagedInfo;
                        }
                    }
                }
            }
            return(retPagedList);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 读取列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public static PagedInfo <T> ToPage <T>(this ISugarQueryable <T> source, PageParm parm)
        {
            var page  = new PagedInfo <T>();
            var total = source.Count();

            page.TotalCount = total;
            page.TotalPages = total / parm.PageSize;

            if (total % parm.PageSize > 0)
            {
                page.TotalPages++;
            }

            page.PageSize  = parm.PageSize;
            page.PageIndex = parm.PageIndex;

            page.DataSource = source.OrderByIF(!string.IsNullOrEmpty(parm.Sort), $"{parm.OrderBy} {(parm.Sort == "descending" ? "desc" : "asc")}").ToPageList(parm.PageIndex, parm.PageSize);
            return(page);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 根据条件查询分页数据
        /// </summary>
        /// <param name="where"></param>
        /// <param name="parm"></param>
        /// <param name="orderFileds">排序</param>
        /// <returns></returns>
        public PagedInfo <T> GetPages(Expression <Func <T, bool> > where, PageParm parm, string orderFileds = null)
        {
            int           TotalCount = 0;
            PagedInfo <T> page       = new PagedInfo <T>();
            var           source     = Db.Queryable <T>().Where(where).OrderByIF(orderFileds != null, orderFileds);
            //if (orderFileds != null)
            //    source = source.OrderBy(orderFileds);
            var list = source.ToPageList(parm.PageIndex, parm.PageSize, ref TotalCount);

            if (list != null)
            {
                page.PageIndex  = parm.PageIndex;
                page.PageSize   = parm.PageSize;
                page.TotalCount = TotalCount;
                page.TotalPages = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(page.TotalCount) / page.PageSize));
                page.DataSource = list;
                return(page);
            }
            return(null);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 根据条件查询分页数据
        /// </summary>
        /// <param name="where">条件</param>
        /// <param name="parm">分页参数</param>
        /// <param name="order">排序字段 a => new { a.ID, a.Sorting }</param>
        /// <param name="orderEnum">排序方式 Asc Desc</param>
        /// <returns></returns>
        public PagedInfo <T> GetPages(Expression <Func <T, bool> > where, PageParm parm, Expression <Func <T, object> > order, string orderEnum)
        {
            //var source = Db.Queryable<T>().Where(where);
            //return source.ToPage(parm);

            int           TotalCount = 0;
            PagedInfo <T> page       = new PagedInfo <T>();
            var           source     = Db.Queryable <T>().Where(where).OrderByIF(orderEnum == "Asc", order, OrderByType.Asc).OrderByIF(orderEnum == "Desc", order, OrderByType.Desc);
            var           list       = source.ToPageList(parm.PageIndex, parm.PageSize, ref TotalCount);

            if (list != null)
            {
                page.PageIndex  = parm.PageIndex;
                page.PageSize   = parm.PageSize;
                page.TotalCount = TotalCount;
                page.TotalPages = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(page.TotalCount) / page.PageSize));
                page.DataSource = list;
                return(page);
            }
            return(null);
        }
Ejemplo n.º 9
0
 public void ReturnsNumberOfPagesRoundedUp()
 {
     var paged = new PagedInfo(new Pager(0, 4), 10);
     Assert.Equal(3, paged.TotalPages);
 }
Ejemplo n.º 10
0
 public void ReturnsNumberOfPages()
 {
     var paged = new PagedInfo(new Pager(0, 5), 10);
     Assert.Equal(2, paged.TotalPages);
 }
Ejemplo n.º 11
0
 public async Task <IActionResult> AllPostByProprietario([FromQuery] PagedInfo info)
 {
     return(Ok(await _postProprietarioAppService.PostsByByProprietario(info)));
 }
Ejemplo n.º 12
0
        public void ReturnsZeroIfNoRecords()
        {
            var paged = new PagedInfo(new Pager(), 0);

            Assert.Equal(0, paged.TotalPages);
        }
Ejemplo n.º 13
0
        public void ReturnsNumberOfPagesRoundedUp()
        {
            var paged = new PagedInfo(new Pager(0, 4), 10);

            Assert.Equal(3, paged.TotalPages);
        }
Ejemplo n.º 14
0
        public async Task <ApiResult <IEnumerable <ProjectNodeViewModel> > > GetList(int pageIndex, string?ProjectTypeID, string?ProjectID, bool?IsEnable, int?State, string?Title)
        {
            var res = new ApiResult <IEnumerable <ProjectNodeViewModel> >()
            {
                statusCode = (int)ApiEnum.Status
            };
            int UserID = GetUserID();

            if (UserID > 0)
            {
                if (pageIndex == 0)
                {
                    pageIndex = 1;
                }
                var parm = Expressionable.Create <ProjectNodeInfo>();
                PagedInfo <ProjectNodeInfo> list = null;
                UserInfo userInfo = userdb.GetId(UserID);
                if (userInfo != null)
                {
                    var parm2 = Expressionable.Create <ProjectUserInfo>()
                                .AndIF(userInfo.RoleID != 1, o => o.UserID == UserID)
                                .And(o => o.IsEnable == true);
                    List <ProjectUserInfo> projectUserInfo = projectUserdb.GetWhere(parm2.ToExpression());
                    int[] nodes;
                    if (projectUserInfo != null && projectUserInfo.Count > 0)
                    {
                        if (userInfo.RoleID != 1)
                        {
                            nodes = new int[projectUserInfo.Count];
                            int i = 0;
                            foreach (var item in projectUserInfo)
                            {
                                nodes[i] = item.ProjectNodeID;
                                i++;
                            }
                            parm.AndIF(nodes.Length > 0, o => nodes.Contains(o.ID));
                        }
                        parm.AndIF(!string.IsNullOrWhiteSpace(ProjectID), m => m.ProjectID == ProjectID);
                        parm.AndIF(IsEnable != null, m => m.IsEnable == IsEnable);
                        parm.AndIF(State != null, m => m.State == State);
                        parm.AndIF(!string.IsNullOrWhiteSpace(Title), m => m.Title.Contains(Title));
                        parm.And(m => m.TypeID == 1);
                        if (!string.IsNullOrWhiteSpace(ProjectTypeID))
                        {
                            List <ProjectInfo> projects = Projectdb.GetList("Projects", Builders <ProjectInfo> .Filter.Where(o => o.ProjectTypeID == ProjectTypeID), null, null);
                            string[]           x        = new string[projects.Count];
                            int a = 0;
                            foreach (var item in projects)
                            {
                                x[a] = item.ID;
                                a++;
                            }
                            parm.And(m => x.Contains(m.ProjectID));
                        }
                        list = PNdb.GetPages(parm.ToExpression(), new PageParm(pageIndex), "ID DESC");
                    }
                    List <ProjectNodeViewModel> list2 = new List <ProjectNodeViewModel>();
                    if (list != null)
                    {
                        foreach (var item in list.DataSource)
                        {
                            ProjectNodeViewModel projectNodeViewModel = IMapper.Map <ProjectNodeViewModel>(item);
                            projectNodeViewModel.PlanCount = plandb.GetCount(o => o.ProjectNodeID == item.ID && o.ProjectID == item.ProjectID);
                            ProjectInfo     projectInfo = Projectdb.Get("Projects", item.ProjectID);
                            List <UserInfo> userInfos   = userdb.GetWhere(a => SqlFunc.Subqueryable <ProjectUserInfo>().Where(b => b.UserID == a.ID && b.ProjectNodeID == item.ID && b.Role == 1 && b.IsEnable == true).Any());
                            if (userInfos != null)
                            {
                                List <APITeamMembersViewModel> ats = new List <APITeamMembersViewModel>();
                                foreach (var item2 in userInfos)
                                {
                                    ats.Add(new APITeamMembersViewModel()
                                    {
                                        ID   = item2.ID,
                                        Name = userdb.GetNames(item2)
                                    });
                                }
                                projectNodeViewModel.Teamleades = ats;
                            }
                            List <UserInfo> userInfos2 = userdb.GetWhere(a => SqlFunc.Subqueryable <ProjectUserInfo>().Where(b => b.UserID == a.ID && b.ProjectNodeID == item.ID && b.Role == 2 && b.IsEnable == true).Any());
                            if (userInfos2 != null)
                            {
                                List <APITeamMembersViewModel> ats = new List <APITeamMembersViewModel>();
                                foreach (var item2 in userInfos2)
                                {
                                    ats.Add(new APITeamMembersViewModel()
                                    {
                                        ID   = item2.ID,
                                        Name = userdb.GetNames(item2)
                                    });
                                }
                                projectNodeViewModel.Teammembers = ats;
                            }
                            if (projectInfo != null)
                            {
                                projectNodeViewModel.ProjectName   = projectInfo.Names;
                                projectNodeViewModel.ProjectTypeID = projectInfo.ProjectTypeID;
                            }
                            list2.Add(projectNodeViewModel);
                        }
                        res.success = true;
                        res.data    = list2;
                        res.index   = pageIndex;
                        res.count   = list.TotalCount;
                        res.size    = list.PageSize;
                        res.pages   = list.TotalPages;
                    }
                    else
                    {
                        res.success    = true;
                        res.statusCode = (int)ApiEnum.Status;
                    }
                }
                else
                {
                    res.msg = "无该用户信息";
                }
            }
            else
            {
                res.msg = "请重新登陆";
            }
            return(await Task.Run(() => res));
        }
Ejemplo n.º 15
0
 public void ReturnsZeroIfNoRecords()
 {
     var paged = new PagedInfo(new Pager(), 0);
     Assert.Equal(0, paged.TotalPages);
 }
Ejemplo n.º 16
0
        public void ReturnsNumberOfPages()
        {
            var paged = new PagedInfo(new Pager(0, 5), 10);

            Assert.Equal(2, paged.TotalPages);
        }
Ejemplo n.º 17
0
 public PagedResult(PagedInfo pagedInfo, T value) : base(value)
 {
     PagedInfo = pagedInfo;
 }
Ejemplo n.º 18
0
        public async Task <PagenateAux <ProprietarioPostViewModel> > PostsByByProprietario(PagedInfo info)
        {
            var igreja = await _unitOfWorkIgrejaEntity.Repository.GetById(info.Id);

            var proprietario = await _unitOfWorkproprietarioRepository.Repository.GetById(igreja.ProprietarioId);

            var posts = _postProprietarioRepository.PostsByUser(proprietario.IdUserProprietario);

            var paginatedListPost = await PaginatedList <ProprietarioPost> .CreateAsync(posts, info.Page, info.PageSize);

            var paginatedListPostViewModel = new PagenateAux <ProprietarioPostViewModel>(new List <ProprietarioPostViewModel>(), paginatedListPost.Itens.Count, paginatedListPost.PageIndex, paginatedListPost.PageSize);

            foreach (var post in paginatedListPost.Itens)
            {
                var postView = _mapper.Map <ProprietarioPostViewModel>(post);
                postView.QtdComentario = _comentarioRepository.QuantidadeComentarios(post.Id);
                paginatedListPostViewModel.Itens.Add(postView);
            }

            paginatedListPostViewModel.PageIndex       = paginatedListPost.PageIndex;
            paginatedListPostViewModel.PageSize        = paginatedListPost.PageSize;
            paginatedListPostViewModel.HasNextPage     = paginatedListPost.HasNextPage;
            paginatedListPostViewModel.HasPreviousPage = paginatedListPost.HasPreviousPage;
            paginatedListPostViewModel.TotalPages      = paginatedListPost.TotalPages;

            return(paginatedListPostViewModel);
        }