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); }
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); }
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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
public void ReturnsNumberOfPagesRoundedUp() { var paged = new PagedInfo(new Pager(0, 4), 10); Assert.Equal(3, paged.TotalPages); }
public void ReturnsNumberOfPages() { var paged = new PagedInfo(new Pager(0, 5), 10); Assert.Equal(2, paged.TotalPages); }
public async Task <IActionResult> AllPostByProprietario([FromQuery] PagedInfo info) { return(Ok(await _postProprietarioAppService.PostsByByProprietario(info))); }
public void ReturnsZeroIfNoRecords() { var paged = new PagedInfo(new Pager(), 0); Assert.Equal(0, paged.TotalPages); }
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)); }
public PagedResult(PagedInfo pagedInfo, T value) : base(value) { PagedInfo = pagedInfo; }
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); }