/// <summary> /// 获取活动评论 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <IActionResult> GetComments(Guid id, string listPageParaJson) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null) { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } ViewBag.activityId = id; //获取一级评论 var commentList = await _commonExtension.GetAll().OrderByDescending(x => x.CommentDataTime).Include(x => x.Activity).Include(x => x.User).Include(x => x.User.Avatar).Where(x => x.Activity.ID == id && x.ParentGrade == null).ToListAsync(); var comments = new List <CommentVM>(); foreach (var item in commentList) { var commentVM = new CommentVM(item); commentVM.CommentChildrens = await _commonExtension.GetAll().OrderBy(x => x.CommentDataTime).Include(x => x.Activity).Include(x => x.AcceptUser).Include(x => x.User).Include(x => x.User.Avatar).Where(x => x.ParentGrade == item.ID).ToListAsync(); comments.Add(commentVM); } var commentPageList = IQueryableExtensions.ToPaginatedList(comments.AsQueryable(), listPagePara.PageIndex, listPagePara.PageSize); var commentCollections = new List <CommentVM>(); foreach (var commentTermPage in commentPageList) { commentCollections.Add(commentTermPage); } var pageGroup = PagenateGroupRepository.GetItem(commentPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/BusinessView/ActivityTermView/_GetComments.cshtml", commentCollections)); }
public async Task <IActionResult> List(string keywork, string probably, string listPageParaJson) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null) { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } var atCollection = new List <ActivityTerm>(); if (!String.IsNullOrEmpty(keywork)) { Expression <Func <ActivityTerm, bool> > condtion = x => x.Name.Contains(keywork) || x.User.Name.Contains(keywork) || x.AnAssociation.Name.Contains(keywork) || x.Address.Contains(keywork); atCollection = await _activityTermExtension.GetAll().Include(x => x.User).Include(x => x.AnAssociation).Include(x => x.Avatar).Where(condtion).Where(x => x.Status == ActivityStatus.未开始 && x.IsDisable).ToListAsync(); if (probably == "1") { atCollection = atCollection.Where(x => x.AnAssociation != null).ToList(); } else if (probably == "2") { atCollection = atCollection.Where(x => x.User != null && x.AnAssociation == null).ToList(); } } else { atCollection = await _activityTermExtension.GetAll().Include(x => x.User).Include(x => x.AnAssociation).Include(x => x.Avatar).Where(x => x.Status == ActivityStatus.未开始 && x.IsDisable).ToListAsync(); if (probably == "1") { atCollection = atCollection.Where(x => x.AnAssociation != null).ToList(); } else if (probably == "2") { atCollection = atCollection.Where(x => x.User != null && x.AnAssociation == null).ToList(); } } var activityTermPageList = IQueryableExtensions.ToPaginatedList(atCollection.AsQueryable(), listPagePara.PageIndex, 12); var activityCollections = new List <ActivityTermVM>(); foreach (var activityTermPage in activityTermPageList) { activityCollections.Add(new ActivityTermVM(activityTermPage) { EnteredNumber = (await _activityUserExtension.GetAll().Where(x => x.ActivityTermId == activityTermPage.ID).ToListAsync()).Count }); } var pageGroup = PagenateGroupRepository.GetItem(activityTermPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/BusinessView/ActivityTermView/_List.cshtml", activityCollections)); }
public IActionResult Index() { //获取当前用户名 GetCurrUserName(); var pageSize = 8; var pageIndex = 1; var counter = 0; //获取所有的商品 var commodityListVM = new List <YZ_CommodityVM>(); var commodities = this._commodity.GetAllIncluding(x => x.Category, x => x.AscriptionUser); var commodityCollectionPageList = commodities.ToPaginatedList(pageIndex, pageSize); if (commodities.Count() > 0) { foreach (var commodity in commodityCollectionPageList) { var commodityImage = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover); var commodityImages = new List <BusinessImage>(); commodityImages.Add(commodityImage); var commodityVM = new YZ_CommodityVM(commodity); commodityVM.Images = commodityImages; commodityVM.OrderNumber = (++counter).ToString(); commodityListVM.Add(commodityVM); } ViewBag.CommodityVMCollection = commodityListVM; // 提取当前页面关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <YZ_Commodity>(commodityCollectionPageList, 10, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = commodityCollectionPageList.PageIndex, Keyword = "", PageSize = commodityCollectionPageList.PageSize, ObjectTypeId = commodityListVM.FirstOrDefault().Id.ToString(), ObjectAmount = commodityCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "Name", PageAmount = 0, SelectedObjectId = "" }; ViewBag.PageParameter = listPageParameter; } else { commodityListVM = null; } return(View("../../Views/AdminCenter/CommodityManagement/Index", commodityListVM)); }
/// <summary> /// 根据关键词检索人员数据集合,返回给前端页面 /// </summary> /// <param name="keywork"></param> /// <returns></returns> public async Task <IActionResult> List(string keywork, string listPageParaJson, string pageIndex) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null && listPageParaJson != "") { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } listPagePara.PageIndex = Convert.ToInt32(pageIndex); var boVMCollection = new List <ApplicationUserVM>(); if (!String.IsNullOrEmpty(keywork) && keywork != "undefined") { Expression <Func <ApplicationUser, bool> > condtion = x =>//Contains(参数字符串是否包含于string对象中) x.Name.Contains(keywork) || x.SchoolAddress.Contains(keywork) || x.School.Contains(keywork); var userCollection = await _userExtension.GetAll().Include(x => x.Avatar).Where(condtion).OrderByDescending(x => x.RegisterTime).ToListAsync(); foreach (var bo in userCollection) { boVMCollection.Add(new ApplicationUserVM(bo)); } } else { var userCollection = await _userExtension.GetAll().Include(x => x.Avatar).OrderByDescending(x => x.RegisterTime).ToListAsync(); foreach (var bo in userCollection) { boVMCollection.Add(new ApplicationUserVM(bo)); } } var userCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <ApplicationUserVM>(), listPagePara.PageIndex, listPagePara.PageSize); var userCollections = new List <ApplicationUserVM>(); foreach (var userCollection in userCollectionPageList) { userCollections.Add(userCollection); } var pageGroup = PagenateGroupRepository.GetItem <ApplicationUserVM>(userCollectionPageList, 3, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/ApplicationOrganization/ApplicationUser/_List.cshtml", userCollections)); }
public async Task <IActionResult> Index() { var anCollection = await _anAssociationExtension.GetAllIncludingAsyn(x => x.User); var anVmCollection = new List <AnAssociationVM>(); foreach (var an in anCollection) { var anVM = new AnAssociationVM(an); anVmCollection.Add(anVM); } var pageSize = 10; var pageIndex = 1; var anAssociationList = anVmCollection.OrderBy(x => x.Name).FirstOrDefault(); //处理分页 var anAssociationCollectionPageList = IQueryableExtensions.ToPaginatedList(anVmCollection.AsQueryable <AnAssociationVM>(), pageIndex, pageSize); var anAssociationCollections = new List <AnAssociationVM>(); foreach (var anAssociationCollection in anAssociationCollectionPageList) { anAssociationCollections.Add(anAssociationCollection); } //提取当前分页关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem(anAssociationCollectionPageList, 5, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = anAssociationCollectionPageList.PageIndex, Keyword = "", PageSize = anAssociationCollectionPageList.PageSize, ObjectTypeID = "", ObjectAmount = anAssociationCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "UserName", PageAmount = 0, SelectedObjectID = "" }; ViewBag.PageParameter = listPageParameter; return(View("~/Views/GroupOrganization/AnAssociation/Index.cshtml", anAssociationCollections)); }
public async Task <IActionResult> Index() { var atCollection = await _activityTermExtension.GetAll().OrderBy(x => x.Status).ThenByDescending(x => x.CreateDateTime).Include(x => x.User).ToListAsync(); var atVmCollection = new List <ActivityTermVM>(); foreach (var at in atCollection) { var atVM = new ActivityTermVM(at); atVmCollection.Add(atVM); } var pageSize = 10; var pageIndex = 1; var activityTermList = atVmCollection.FirstOrDefault(); var activityTermCollections = new List <ActivityTermVM>(); //处理分页 var activityTermCollectionPageList = IQueryableExtensions.ToPaginatedList(atVmCollection.AsQueryable <ActivityTermVM>(), pageIndex, pageSize); foreach (var activityTermCollection in activityTermCollectionPageList) { activityTermCollections.Add(activityTermCollection); } //提取当前分页关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem(activityTermCollectionPageList, 5, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = activityTermCollectionPageList.PageIndex, Keyword = "", PageSize = activityTermCollectionPageList.PageSize, ObjectTypeID = "", ObjectAmount = activityTermCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "Name", PageAmount = 0, SelectedObjectID = "" }; ViewBag.PageParameter = listPageParameter; return(View("~/Views/GroupOrganization/ActivityTerm/Index.cshtml", activityTermCollections)); }
public async Task <IActionResult> OrderList(string selectNnm) { ViewBag.UserLogonInformation = GetUserName(); var listPagePara = new ListPageParameter() { ObjectTypeID = "Order", // 对应的归属类型ID PageIndex = 1, // 当前页码 PageSize = 4, // 每页数据条数 为"0"时显示所有 PageAmount = 0, // 相关对象列表分页处理分页数量 ObjectAmount = 0, // 相关的对象的总数 Keyword = "", // 当前的关键词 SortProperty = "SortCode", // 排序属性 SortDesc = "default", // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend SelectedObjectID = "", // 当前页面处理中处理的焦点对象 ID IsSearch = false, // 当前是否为检索 }; listPagePara.PageIndex = selectNnm != null?Convert.ToInt32(selectNnm) : 1; var user = User.Claims.FirstOrDefault(); if (user.Value == new Guid().ToString()) { return(View("../../Views/Home/Logon")); } var shop = _ShopRepository.GetSingleBy(x => x.ShopForUser.Id == user.Value); //查询订单详细所关联的商品列表 var orderItems = _OrderItemRepository.FindBy(x => x.ShopName == shop.Name); //获取订单和订单对应的用户和商品 var orVMCollection = new List <SK_WM_OrderItemVM>(); //存放用户所有订单 var OrderAll = orderItems.AsQueryable <SK_WM_OrderItem>(); var OrderCollectionPageList = IQueryableExtensions.ToPaginatedList(OrderAll, listPagePara.PageIndex, listPagePara.PageSize); foreach (var order in OrderCollectionPageList) { var omVM = new SK_WM_OrderItemVM(order); orVMCollection.Add(omVM); } var pageGroup = PagenateGroupRepository.GetItem <SK_WM_OrderItem>(OrderCollectionPageList, 3, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("../../Views/BusinessOrganization/BusinessBG/OrderList", orVMCollection)); }
public async Task <IActionResult> Index() { var boCollection = await _hobbyExtension.GetAll().Include(x => x.Avatar).OrderBy(x => x.SortCode).ToListAsync(); var boVMCollection = new List <HobbyVM>(); foreach (var bo in boCollection) { var boVM = new HobbyVM(bo); boVMCollection.Add(boVM); } var pageSize = 10; var pageIndex = 1; var personList = boVMCollection.OrderBy(x => x.Name).FirstOrDefault(); // 处理分页 var hobbyCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <HobbyVM>(), pageIndex, pageSize); var hobbyCollections = new List <HobbyVM>(); foreach (var hobbyCollection in hobbyCollectionPageList) { hobbyCollections.Add(hobbyCollection); } //提取当前分页关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <HobbyVM>(hobbyCollectionPageList, 5, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = hobbyCollectionPageList.PageIndex, Keyword = "", PageSize = hobbyCollectionPageList.PageSize, ObjectTypeID = "", ObjectAmount = hobbyCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "Name", PageAmount = 0, SelectedObjectID = "" }; ViewBag.PageParameter = listPageParameter; return(View("~/Views/ApplicationOrganization/Hobbys/Index.cshtml", hobbyCollections)); }
public async Task <IActionResult> Index() { var boCollection = await _PersonExtension.GetAllAsyn(); var boVMCollection = new List <PersonVM>(); foreach (var bo in boCollection) { var boVM = new PersonVM(bo); boVMCollection.Add(boVM); } var pageSize = 10; var pageIndex = 1; var personList = boVMCollection.OrderBy(x => x.Name).FirstOrDefault(); // 处理分页 var personCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <PersonVM>(), pageIndex, pageSize); var personCollections = new List <PersonVM>(); foreach (var personCollection in personCollectionPageList) { personCollections.Add(personCollection); } //提取当前分页关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <PersonVM>(personCollectionPageList, 3, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = personCollectionPageList.PageIndex, Keyword = "", PageSize = personCollectionPageList.PageSize, ObjectTypeID = "", ObjectAmount = personCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "UserName", PageAmount = 0, SelectedObjectID = "" }; ViewBag.PageParameter = listPageParameter; return(View("~/Views/BusinessOrganization/Person/Index.cshtml", personCollections)); }
public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null) { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } var anCollection = new List <AnAssociation>(); if (!String.IsNullOrEmpty(keywork)) { Expression <Func <AnAssociation, bool> > condtion = x => x.Name.Contains(keywork) || x.User.Name.Contains(keywork) || x.SchoolAddress.Contains(keywork); anCollection = await _anAssociationExtension.GetAll().Include(x => x.User).Include(x => x.Avatar).Where(condtion).Where(x => x.IsDisable).ToListAsync(); } else { anCollection = await _anAssociationExtension.GetAll().Include(x => x.User).Include(x => x.Avatar).Where(x => x.IsDisable).ToListAsync(); } var activityTermPageList = IQueryableExtensions.ToPaginatedList(anCollection.AsQueryable(), listPagePara.PageIndex, 12); var anAssociationCollections = new List <AnAssociationVM>(); foreach (var activityTermPage in activityTermPageList) { var anNum = await _anAssociationAndUserExtension.GetAll().Where(x => x.AnAssociationId == activityTermPage.ID).Select(x => x.AnAssociation).ToListAsync(); anAssociationCollections.Add(new AnAssociationVM(activityTermPage) { AnAssociationNum = anNum.Count() }); } var pageGroup = PagenateGroupRepository.GetItem(activityTermPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/BusinessView/AnAssociationView/_List.cshtml", anAssociationCollections)); }
/// <summary> /// 根据关键词检索活动数据集合,返回给前端页面 /// </summary> /// <param name="keywork"></param> public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var atVMCollection = new List <ActivityTermVM>(); if (!String.IsNullOrEmpty(keywork) && keywork != "undefined") { Expression <Func <ActivityTerm, bool> > condtion = x => x.Name.Contains(keywork) || x.Address.Contains(keywork); var activityTermCollection = await _activityTermExtension.GetAll().OrderBy(x => x.Status).ThenByDescending(x => x.CreateDateTime).Include(x => x.User).Where(condtion).ToListAsync(); foreach (var at in activityTermCollection) { atVMCollection.Add(new ActivityTermVM(at)); } } else { var activityTermCollection = await _activityTermExtension.GetAll().OrderBy(x => x.Status).ThenByDescending(x => x.CreateDateTime).Include(x => x.User).ToListAsync(); foreach (var at in activityTermCollection) { atVMCollection.Add(new ActivityTermVM(at)); } } var activityTermPageList = IQueryableExtensions.ToPaginatedList(atVMCollection.AsQueryable(), listPagePara.PageIndex, listPagePara.PageSize); var activityCollections = new List <ActivityTermVM>(); foreach (var activityTermPage in activityTermPageList) { activityCollections.Add(activityTermPage); } var pageGroup = PagenateGroupRepository.GetItem(activityTermPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/GroupOrganization/ActivityTerm/_List.cshtml", activityCollections)); }
/// <summary> /// 根据关键词检索人员数据集合,返回给前端页面 /// </summary> /// <param name="keywork"></param> /// <returns></returns> public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var boVMCollection = new List <PersonVM>(); if (!String.IsNullOrEmpty(keywork)) { Expression <Func <Person, bool> > condtion = x =>//Contains(参数字符串是否包含于string对象中) x.Name.Contains(keywork) || x.FixedTelephone.Contains(keywork); var personCollection = await _PersonExtension.FindByAsyn(condtion); foreach (var bo in personCollection) { boVMCollection.Add(new PersonVM(bo)); } } else { var personCollection = await _PersonExtension.GetAllAsyn(); foreach (var bo in personCollection) { boVMCollection.Add(new PersonVM(bo)); } } var personCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <PersonVM>(), listPagePara.PageIndex, listPagePara.PageSize); var personCollections = new List <PersonVM>(); foreach (var personCollection in personCollectionPageList) { personCollections.Add(personCollection); } var pageGroup = PagenateGroupRepository.GetItem <PersonVM>(personCollectionPageList, 3, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("../../Views/BusinessOrganization/Person/_List", personCollections)); }
/// <summary> /// 根据关键词检索活动数据集合,返回给前端页面 /// </summary> /// <param name="keywork"></param> public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var anVMCollection = new List <AnAssociationVM>(); if (!String.IsNullOrEmpty(keywork) && keywork != "undefined") { Expression <Func <AnAssociation, bool> > condtion = x => x.Name.Contains(keywork) || x.SchoolAddress.Contains(keywork); var anAssociationCollection = await _anAssociationExtension.GetAll().Include(x => x.User).Where(condtion).ToListAsync(); foreach (var an in anAssociationCollection) { anVMCollection.Add(new AnAssociationVM(an)); } } else { var anAssociationCollection = await _anAssociationExtension.GetAllIncludingAsyn(x => x.User); foreach (var an in anAssociationCollection) { anVMCollection.Add(new AnAssociationVM(an)); } } var anAssociationPageList = IQueryableExtensions.ToPaginatedList(anVMCollection.AsQueryable(), listPagePara.PageIndex, listPagePara.PageSize); var associationCollections = new List <AnAssociationVM>(); foreach (var anAssociationPage in anAssociationPageList) { associationCollections.Add(anAssociationPage); } var pageGroup = PagenateGroupRepository.GetItem(anAssociationPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/GroupOrganization/AnAssociation/_List.cshtml", associationCollections)); }
/// <summary> /// 根据关键词检索爱好数据集合,返回给前端页面 /// </summary> /// <param name="keywork"></param> /// <returns></returns> public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var boVMCollection = new List <HobbyVM>(); if (!String.IsNullOrEmpty(keywork)) { Expression <Func <Hobby, bool> > condtion = x =>//Contains(参数字符串是否包含于string对象中) x.Name.Contains(keywork) || x.Description.Contains(keywork); var hobbyCollection = await _hobbyExtension.GetAll().Include(x => x.Avatar).OrderBy(x => x.SortCode).Where(condtion).ToListAsync(); foreach (var bo in hobbyCollection) { boVMCollection.Add(new HobbyVM(bo)); } } else { var hobbyCollection = await _hobbyExtension.GetAll().Include(x => x.Avatar).OrderBy(x => x.SortCode).ToListAsync(); foreach (var bo in hobbyCollection) { boVMCollection.Add(new HobbyVM(bo)); } } var hobbyCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <HobbyVM>(), listPagePara.PageIndex, listPagePara.PageSize); var hobbyCollections = new List <HobbyVM>(); foreach (var hoCollection in hobbyCollectionPageList) { hobbyCollections.Add(hoCollection); } var pageGroup = PagenateGroupRepository.GetItem <HobbyVM>(hobbyCollectionPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/ApplicationOrganization/Hobbys/_List.cshtml", hobbyCollections)); }
public async Task <IActionResult> List(string keywork, string listPageParaJson) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null && listPageParaJson != "") { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } var heVMCollection = new List <HomeExhibitionVM>(); var homeExhibitionCollection = new List <HomeExhibition>(); if (!String.IsNullOrEmpty(keywork)) { Expression <Func <HomeExhibition, bool> > condtion = x => x.Name.Contains(keywork) || x.Activity.Name.Contains(keywork) || x.Activity.User.Name.Contains(keywork); homeExhibitionCollection = await _homeExhibitionRepository.GetAll().Include(x => x.Activity).Include(x => x.Activity.User). Include(x => x.Avatar).Where(condtion).OrderBy(x => x.CreateDateTime).ToListAsync(); } else { homeExhibitionCollection = await _homeExhibitionRepository.GetAll().Include(x => x.Activity).Include(x => x.Activity.User). Include(x => x.Avatar).OrderBy(x => x.CreateDateTime).ToListAsync(); } var homeExhibitionPageList = IQueryableExtensions.ToPaginatedList(homeExhibitionCollection.AsQueryable(), listPagePara.PageIndex, listPagePara.PageSize); foreach (var item in homeExhibitionPageList) { heVMCollection.Add(new HomeExhibitionVM(item)); } var pageGroup = PagenateGroupRepository.GetItem(homeExhibitionPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/GroupOrganization/HomeExhibition/_List.cshtml", heVMCollection)); }
/// <summary> /// 社团活动 /// </summary> /// <param name="keywork"></param> /// <param name="listPageParaJson"></param> /// <returns></returns> public async Task <IActionResult> ActivityList(Guid id, string listPageParaJson) { var listPagePara = new ListPageParameter(); if (listPageParaJson != null) { listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); } var atVMCollection = new List <ActivityTermVM>(); var activityTermCollection = await _activityTermExtension.GetAll().Include(x => x.User).Include(x => x.AnAssociation).Include(x => x.Avatar).Where(x => x.AnAssociation.ID == id).ToListAsync(); var activityTermPageList = IQueryableExtensions.ToPaginatedList(activityTermCollection.AsQueryable(), listPagePara.PageIndex, 10); var activityCollections = new List <ActivityTermVM>(); foreach (var activityTermPage in activityTermPageList) { activityCollections.Add(new ActivityTermVM(activityTermPage)); } var pageGroup = PagenateGroupRepository.GetItem(activityTermPageList, 5, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; return(View("~/Views/GroupOrganization/AnAssociation/ActivityList.cshtml", activityCollections)); }
/// <summary> /// 用于翻页 /// </summary> /// <param name="pageIndex"></param> /// <param name="objectTypeID"></param> /// <returns></returns> public async Task <IActionResult> IllegalShopPageList(int pageIndex, string objectTypeID) { var listPagePara = new ListPageParameter() { ObjectTypeID = objectTypeID, // 对应的归属类型ID PageIndex = pageIndex, // 当前页码 PageSize = 8, // 每页数据条数 为"0"时显示所有 PageAmount = 0, // 相关对象列表分页处理分页数量 ObjectAmount = 0, // 相关的对象的总数 Keyword = "", // 当前的关键词 SortProperty = "SortCode", // 排序属性 SortDesc = "default", // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend SelectedObjectID = "", // 当前页面处理中处理的焦点对象 ID IsSearch = false, // 当前是否为检索 }; var typeID = ""; var keyword = ""; if (!String.IsNullOrEmpty(listPagePara.ObjectTypeID)) { typeID = listPagePara.ObjectTypeID; } if (!String.IsNullOrEmpty(listPagePara.Keyword)) { keyword = listPagePara.Keyword; } var username = User.Identity.Name; var user = await _UserManager.FindByNameAsync(username); if (user == null) { return(View("../../Views/Home/Logon")); } var shCollection = await _ShopRepository.PaginateAsyn(listPagePara.PageIndex, listPagePara.PageSize, x => x.SortCode, null, x => x.ShopAvatar, x => x.ShopBanner, x => x.ShopForExecuteIllegal, x => x.ShopForUser); var shVMCollection = new List <SK_WM_ShopVM>(); foreach (var sh in shCollection) { var shVM = new SK_WM_ShopVM(sh); var images = _ImageRepository.GetAll().Where(x => x.RelevanceObjectID == sh.ID); foreach (var img in images) { if (img.Description == "shopAvatar") { shVM.ShopAvatarPath = img.UploadPath; } if (img.Description == "shopBanner") { shVM.ShopBannerPath = img.UploadPath; } } shVMCollection.Add(shVM); } var pageGroup = PagenateGroupRepository.GetItem <SK_WM_Shop>(shCollection, 10, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; ViewBag.GoodsType = "Admin"; return(PartialView("../../Views/Shop/ShopManager/_List", shVMCollection)); }
public async Task <IActionResult> List(int pageIndex) { var listPagePara = new ListPageParameter() { ObjectTypeID = "Goods", // 对应的归属类型ID PageIndex = pageIndex, // 当前页码 PageSize = 8, // 每页数据条数 为"0"时显示所有 PageAmount = 0, // 相关对象列表分页处理分页数量 ObjectAmount = 0, // 相关的对象的总数 Keyword = "", // 当前的关键词 SortProperty = "SortCode", // 排序属性 SortDesc = "default", // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend SelectedObjectID = "", // 当前页面处理中处理的焦点对象 ID IsSearch = false, // 当前是否为检索 }; var typeID = ""; var keyword = ""; if (!String.IsNullOrEmpty(listPagePara.ObjectTypeID)) { typeID = listPagePara.ObjectTypeID; } if (!String.IsNullOrEmpty(listPagePara.Keyword)) { keyword = listPagePara.Keyword; } var username = User.Identity.Name; var user = await _UserManager.FindByNameAsync(username); if (user == null) { return(View("../../Views/Home/Logon")); } //var pageIndex = 1; //var pageSize = 50; //var boCollection = new List<SK_WM_Goods>(); var boCollection = await _BoRepository.PaginateAsyn(listPagePara.PageIndex, listPagePara.PageSize, x => x.SortCode, null, x => x.SK_WM_GoodsCategory); var shop = await _ShopRepository.FindByAsyn(x => x.BelongToUserID == user.Id); var boVMCollection = new List <SK_WM_GoodsVM>(); var orderNumber = 0; foreach (var bo in boCollection) { //if (bo.BelongToShopID == shop.FirstOrDefault().ID.ToString()) //{ var boVM = new SK_WM_GoodsVM(bo); var images = _ImageRepository.GetAll().OrderByDescending(x => x.SortCode).Where(y => y.RelevanceObjectID == bo.ID); if (images != null) { foreach (var img in images) { if (img.IsForTitle == true) { boVM.AvatarPath = img.UploadPath; } } //} boVM.OrderNumber = (++orderNumber).ToString(); boVMCollection.Add(boVM); } } var pageGroup = PagenateGroupRepository.GetItem <SK_WM_Goods>(boCollection, 10, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; //return View("../../Views/BusinessOrganization/BusinessBG/Index", boVMCollection); //} return(PartialView("../../Views/BusinessOrganization/PublicView/_List", boVMCollection)); }
public async Task <List <CoursesVM> > GetboVMCollectionAsyn(ListPageParameter listPageParameter) { var pageIndex = Int16.Parse(listPageParameter.PageIndex); var pageSize = Int16.Parse(listPageParameter.PageSize); var typeID = ""; var keyword = ""; var typeName = "所有部门人员"; if (!String.IsNullOrEmpty(listPageParameter.ObjectTypeID)) { typeID = listPageParameter.ObjectTypeID; } if (!String.IsNullOrEmpty(listPageParameter.Keyword)) { keyword = listPageParameter.Keyword; } // 根据查询创建的表达式 Expression <Func <Course, bool> > predicateExpession = ExpressionFactoryMethod.GetConditionExpression <Course>(keyword); // 获取排序属性所需要的表达式 var sortExpession = ExpressionFactoryMethod.GetPropertyExpression <Course, object>(listPageParameter.SortProperty); // 获取数据集合 var tempCollection = _boRepository.GetAllIncluding(y => y.CourseAdministrator).Where(predicateExpession); // 排序 if (String.IsNullOrEmpty(listPageParameter.SortProperty)) { tempCollection = tempCollection.OrderBy(sortExpession); } else { tempCollection = tempCollection.OrderByDescending(sortExpession); } // 按照类型获取业务对象数据 if (!String.IsNullOrEmpty(typeID)) { //tempCollection = tempCollection.Where(y => y.GradeAndClass.Id == Guid.Parse(typeID)); //typeName = _gradeRepository.GetSingle(Guid.Parse(typeID)).Name; } var isDescend = String.IsNullOrEmpty(listPageParameter.SortProperty); // 分页 var boCollection = await tempCollection.ToPaginatedListAsync(pageIndex, pageSize); var boVMCollection = new List <CoursesVM>(); var counter = 0; foreach (var bo in boCollection) { var boVM = GetVM(bo.Id); boVM.OrderNumber = (++counter).ToString(); boVMCollection.Add(boVM); } listPageParameter.PageAmount = boCollection.TotalPageCount.ToString(); listPageParameter.ObjectAmount = boCollection.TotalCount.ToString(); listPageParameter.PagenateGroup = PagenateGroupRepository.GetItem <Course>(boCollection, 10, pageIndex); listPageParameter.Keyword = keyword; listPageParameter.TypeName = typeName; return(boVMCollection); }
/// <summary> /// 用户管理入口 /// </summary> /// <returns></returns> public IActionResult Index() { var pageSize = 15; // 这参数未来要根据前端用户的显示器情况处理一下 var pageIndex = 1; var boCollection = _RoleManager.Roles; var boVMCollection = new List <ApplicationRoleVM>(); var counter = 0; foreach (var item in boCollection.OrderBy(x => x.SortCode)) { var boVM = new ApplicationRoleVM(item) { OrderNumber = (++counter).ToString() }; boVMCollection.Add(boVM); } // 提取第一个角色组的用户作为待处理的用户对象 var role = boCollection.OrderBy(x => x.SortCode).FirstOrDefault(); var userCollection = from u in _UserManager.Users where u.Roles.Select(x => x.RoleId).Contains(role.Id) select u; // 提取分页的数据,当前这是第一页,而且没有任何限制条件的 var userCollectionPageList = userCollection.ToPaginatedList(pageIndex, pageSize); var userVMCollection = new List <ApplicationUserVM>(); counter = 0; foreach (var user in userCollectionPageList) { var userVM = new ApplicationUserVM(user) { OrderNumber = (++counter).ToString() }; userVMCollection.Add(userVM); } ViewBag.UserVMCollection = userVMCollection; ViewBag.RoleName = role.DisplayName; ViewBag.RoleId = role.Id; ViewBag.WhatItIs = "Users"; // 用于为 _RoleAndUserLayout 判断调用那个 PartialView 使用的,相关的引用实例在:_RoleAndUserLayout.cshtml 大约 84-94 行 ViewBag.RolesItems = boVMCollection; // 提取当前页面关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <ApplicationUser>(userCollectionPageList, 10, pageIndex); ViewBag.PageGroup = pageGroup; var listPageParameter = new ListPageParameter() { PageIndex = userCollectionPageList.PageIndex, Keyword = "", PageSize = userCollectionPageList.PageSize, ObjectTypeId = role.Id, ObjectAmount = userCollectionPageList.TotalCount, SortDesc = "Default", SortProperty = "UserName", PageAmount = 0, SelectedObjectId = "" }; ViewBag.PageParameter = listPageParameter; return(View("../../Views/ApplicationOrganization/ApplicationUser/Index", boVMCollection)); }
/// <summary> /// 用户列表数据 /// </summary> /// <param name="listPageParaJson"> /// 用于简单定义从前端页面返回的数据列表相关的 Json 变量,变量的定义依赖 ShiKe.Common.JsonModels.ListPageParameter, /// 前端 json 数据构建相关的代码,参见:wwwroot/js/yiZhanCommon.js 其中的方法:function yiZhanGetListParaJson() /// </param> /// <returns></returns> public async Task <IActionResult> List(string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var typeId = ""; var keyword = ""; if (!String.IsNullOrEmpty(listPagePara.ObjectTypeId)) { typeId = listPagePara.ObjectTypeId; } if (!String.IsNullOrEmpty(listPagePara.Keyword)) { keyword = listPagePara.Keyword; } #region 1.构建与 keyword 相关的查询 lambda 表达式,用于对查询结果的过滤(给 Where 使用) Expression <Func <ApplicationUser, bool> > predicate = x => x.UserName.Contains(keyword) || x.ChineseFullName.Contains(keyword) || x.FirstName.Contains(keyword) || x.LastName.Contains(keyword) || x.MobileNumber.Contains(keyword); #endregion #region 2.根据情况提取系统用户数据集和 var id = listPagePara.ObjectTypeId; var roleId = (String.IsNullOrEmpty(id)) ? "" : id; IQueryable <ApplicationUser> userCollection; if (String.IsNullOrEmpty(roleId)) { // 提取全部没有归属用户组的用户 userCollection = from u in _UserManager.Users where u.Roles.Count == 0 select u; } else { // 提取归属指定用户组的用户 userCollection = from u in _UserManager.Users where u.Roles.Select(x => x.RoleId).Contains(roleId) select u; } // 处理条件过滤 var filterUserCollection = userCollection.Where(predicate); #endregion #region 3.根据属性名称确定排序的属性的 lambda 表达式 var sortPropertyName = listPagePara.SortProperty; var type = typeof(ApplicationUser); var target = Expression.Parameter(typeof(object)); var castTarget = Expression.Convert(target, type); var getPropertyValue = Expression.Property(castTarget, sortPropertyName); var sortExpession = Expression.Lambda <Func <ApplicationUser, object> >(getPropertyValue, target); #endregion #region 4.对过滤的用户数据进行排序 // 处理排序 IQueryable <ApplicationUser> sortedUserCollection; if (listPagePara.SortDesc == "") { sortedUserCollection = filterUserCollection.OrderByDescending(sortExpession); } else { sortedUserCollection = filterUserCollection.OrderBy(sortExpession); } // 处理分页 var userCollectionPageList = sortedUserCollection.ToPaginatedList(listPagePara.PageIndex, listPagePara.PageSize); #endregion #region 5.构建相关的视图模型和所需要向前端提交一些与约束相关的参数 var userVMCollection = new List <ApplicationUserVM>(); var counter = 0; foreach (var user in userCollectionPageList) { var userVM = new ApplicationUserVM(user) { OrderNumber = (++counter + ((listPagePara.PageIndex - 1) * listPagePara.PageSize)).ToString() }; userVMCollection.Add(userVM); } ViewBag.RoleId = id; if (!String.IsNullOrEmpty(roleId)) { var role = await _RoleManager.FindByIdAsync(roleId); ViewBag.RoleName = role.DisplayName; } else { ViewBag.RoleName = "没有归属任何角色组"; } // 提取当前页面关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <ApplicationUser>(userCollectionPageList, 10, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; #endregion return(PartialView("../../Views/ApplicationOrganization/ApplicationUser/_List", userVMCollection)); }
/// <summary> /// 列表数据 /// </summary> /// <param name="listPageParaJson"> /// 用于简单定义从前端页面返回的数据列表相关的 Json 变量,变量的定义依赖 ShiKe.Common.JsonModels.ListPageParameter, /// 前端 json 数据构建相关的代码,参见:wwwroot/js/yiZhanCommon.js 其中的方法:function yiZhanGetListParaJson() /// </param> /// <returns></returns> public IActionResult List(string listPageParaJson) { var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson); var typeId = ""; var keyword = ""; if (!String.IsNullOrEmpty(listPagePara.ObjectTypeId)) { typeId = listPagePara.ObjectTypeId; } if (!String.IsNullOrEmpty(listPagePara.Keyword)) { keyword = listPagePara.Keyword; } #region 1.构建与 keyword 相关的查询 lambda 表达式,用于对查询结果的过滤(给 Where 使用) Expression <Func <YZ_Commodity, bool> > predicate = x => x.Name.Contains(keyword) || x.Description.Contains(keyword) || x.Category.Name.Contains(keyword); #endregion var commodities = this._commodity.GetAllIncluding(x => x.Category, x => x.AscriptionUser); // 2.处理条件过滤 var filterCommoditiesCollection = commodities.Where(predicate); #region 3.根据属性名称确定排序的属性的 lambda 表达式 var sortPropertyName = listPagePara.SortProperty; var type = typeof(YZ_Commodity); var target = Expression.Parameter(typeof(object)); var castTarget = Expression.Convert(target, type); var getPropertyValue = Expression.Property(castTarget, sortPropertyName); var sortExpession = Expression.Lambda <Func <YZ_Commodity, object> >(getPropertyValue, target); #endregion #region 4.对过滤的数据进行排序 // 处理排序 IQueryable <YZ_Commodity> sortedUserCollection; if (listPagePara.SortDesc == "") { sortedUserCollection = filterCommoditiesCollection.OrderByDescending(sortExpession); } else { sortedUserCollection = filterCommoditiesCollection.OrderBy(sortExpession); } // 处理分页 var commodityCollectionPageList = sortedUserCollection.ToPaginatedList(listPagePara.PageIndex, listPagePara.PageSize); #endregion #region 5.构建相关的视图模型和所需要向前端提交一些与约束相关的参数 var commodityListVM = new List <YZ_CommodityVM>(); var counter = 0; if (commodities.Count() > 0) { foreach (var commodity in commodityCollectionPageList) { var commodityImage = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover); var commodityImages = new List <BusinessImage>(); commodityImages.Add(commodityImage); var commodityVM = new YZ_CommodityVM(commodity); commodityVM.Images = commodityImages; commodityVM.OrderNumber = (++counter + ((listPagePara.PageIndex - 1) * listPagePara.PageSize)).ToString(); commodityListVM.Add(commodityVM); } } // 提取当前页面关联的分页器实例 var pageGroup = PagenateGroupRepository.GetItem <YZ_Commodity>(commodityCollectionPageList, 10, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; #endregion return(PartialView("../../Views/AdminCenter/CommodityManagement/_List", commodityListVM)); }
public async Task <IActionResult> Index() { ViewBag.UserLogonInformation = GetUserName(); var listPagePara = new ListPageParameter() { ObjectTypeID = "Shop", // 对应的归属类型ID PageIndex = 1, // 当前页码 PageSize = 8, // 每页数据条数 为"0"时显示所有 PageAmount = 0, // 相关对象列表分页处理分页数量 ObjectAmount = 0, // 相关的对象的总数 Keyword = "", // 当前的关键词 SortProperty = "SortCode", // 排序属性 SortDesc = "default", // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend SelectedObjectID = "", // 当前页面处理中处理的焦点对象 ID IsSearch = false, // 当前是否为检索 }; var typeID = ""; var keyword = ""; if (!String.IsNullOrEmpty(listPagePara.ObjectTypeID)) { typeID = listPagePara.ObjectTypeID; } if (!String.IsNullOrEmpty(listPagePara.Keyword)) { keyword = listPagePara.Keyword; } //var shCollection = await _ShopRepository.GetAllIncludingAsyn(x => x.ShopForUser,x=>x.ShopAvatar, x => x.ShopBanner); var shCollection = await _ShopRepository.PaginateAsyn(listPagePara.PageIndex, listPagePara.PageSize, x => x.SortCode, null, x => x.ShopAvatar, x => x.ShopBanner, x => x.ShopForExecuteIllegal, x => x.ShopForUser); var shVMCollection = new List <SK_WM_ShopVM>(); foreach (var sh in shCollection) { if (sh.ShopForExecuteIllegal.ShopState == (SK_WM_ShopState.ShopState.已开启).ToString()) { var shVM = new SK_WM_ShopVM(sh); var images = _ImageRepository.GetAll().Where(x => x.RelevanceObjectID == sh.ID); foreach (var img in images) { if (img.Description == "shopAvatar") { shVM.ShopAvatarPath = img.UploadPath; } if (img.Description == "shopBanner") { shVM.ShopBannerPath = img.UploadPath; } } shVMCollection.Add(shVM); } } var pageGroup = PagenateGroupRepository.GetItem <SK_WM_Shop>(shCollection, 10, listPagePara.PageIndex); ViewBag.PageGroup = pageGroup; ViewBag.PageParameter = listPagePara; ViewBag.GoodsType = "Admin"; return(View("../../Views/Shop/ShopManager/Index", shVMCollection)); }
/// <summary> /// 根据列表分页器的参数 /// </summary> /// <param name="listPageParameter"></param> /// <param name="boService"></param> /// <param name=""></param> /// <returns></returns> public async Task <List <ApplicationUserVM> > GetboVMCollectionAsyn(ListPageParameter listPageParameter) { var pageIndex = Int16.Parse(listPageParameter.PageIndex); var pageSize = Int16.Parse(listPageParameter.PageSize); var typeID = ""; var keyword = ""; var typeName = "所有用户"; var objectAmount = _userManager.Users.Count(); if (!String.IsNullOrEmpty(listPageParameter.ObjectTypeID)) { typeID = listPageParameter.ObjectTypeID; } if (!String.IsNullOrEmpty(listPageParameter.Keyword)) { keyword = listPageParameter.Keyword; } #region 1.构建与 keyword 相关的查询 lambda 表达式,用于对查询结果的过滤(给 Where 使用) Expression <Func <ApplicationUser, bool> > predicateExpession = x => x.UserName.Contains(keyword) || x.ChineseFullName.Contains(keyword) || x.FirstName.Contains(keyword) || x.LastName.Contains(keyword) || x.MobileNumber.Contains(keyword); #endregion #region 2.根据属性名称确定排序的属性的 lambda 表达式 var sortPropertyName = listPageParameter.SortProperty; var type = typeof(ApplicationUser); var target = Expression.Parameter(typeof(object)); var castTarget = Expression.Convert(target, type); var getPropertyValue = Expression.Property(castTarget, sortPropertyName); var sortExpession = Expression.Lambda <Func <ApplicationUser, object> >(getPropertyValue, target); #endregion PaginatedList <ApplicationUser> boCollection = new PaginatedList <ApplicationUser>(); var roleId = listPageParameter.ObjectTypeID; if (String.IsNullOrEmpty(roleId)) { var tempCollection = _userManager.Users.Where(predicateExpession); objectAmount = tempCollection.Count(); if (listPageParameter.SortDesc == "") { boCollection = tempCollection.OrderByDescending(sortExpession).AsQueryable().ToPaginatedList(pageIndex, pageSize); } else { boCollection = tempCollection.OrderBy(sortExpession).AsQueryable().ToPaginatedList(pageIndex, pageSize); } } else { var role = await _roleManager.FindByIdAsync(roleId); var tempCollection = await _userManager.GetUsersInRoleAsync(role.Name); typeName = role.Name; objectAmount = tempCollection.Count(); if (listPageParameter.SortDesc == "") { boCollection = tempCollection.AsQueryable().OrderByDescending(sortExpession).ToPaginatedList(pageIndex, pageSize); } else { boCollection = tempCollection.AsQueryable().OrderBy(sortExpession).ToPaginatedList(pageIndex, pageSize); } } var boVMCollection = new List <ApplicationUserVM>(); var counter = 0; foreach (var user in boCollection) { var boVM = GetVMForList(user); boVM.OrderNumber = (++counter + (pageIndex - 1) * pageSize).ToString(); boVMCollection.Add(boVM); } listPageParameter.PageAmount = boCollection.TotalPageCount.ToString(); listPageParameter.ObjectAmount = boCollection.TotalCount.ToString(); listPageParameter.PagenateGroup = PagenateGroupRepository.GetItem <ApplicationUser>(boCollection, 10, pageIndex); listPageParameter.Keyword = keyword; listPageParameter.TypeName = typeName; return(boVMCollection); }
/// <summary> /// 根据列表分页器的参数 /// </summary> /// <param name="listPageParameter"></param> /// <param name="boService"></param> /// <param name=""></param> /// <returns></returns> public async Task <List <ArticleVM> > GetboVMCollectionAsyn(ListPageParameter listPageParameter) { var pageIndex = Int16.Parse(listPageParameter.PageIndex); var pageSize = Int16.Parse(listPageParameter.PageSize); var typeID = ""; var keyword = ""; var typeName = "所有文章"; var objectAmount = 0; if (!String.IsNullOrEmpty(listPageParameter.ObjectTypeID)) { typeID = listPageParameter.ObjectTypeID; } if (!String.IsNullOrEmpty(listPageParameter.Keyword)) { keyword = listPageParameter.Keyword; } #region 1.构建与 keyword 相关的查询 lambda 表达式,用于对查询结果的过滤(给 Where 使用) Expression <Func <Article, bool> > predicateExpession = x => x.Name.Contains(keyword) || x.ArticleSecondTitle.Contains(keyword) || x.ArticleContent.Contains(keyword) || x.Description.Contains(keyword); #endregion #region 2.根据属性名称确定排序的属性的 lambda 表达式 var sortPropertyName = listPageParameter.SortProperty; var type = typeof(Article); var target = Expression.Parameter(typeof(object)); var castTarget = Expression.Convert(target, type); var getPropertyValue = Expression.Property(castTarget, sortPropertyName); var sortExpession = Expression.Lambda <Func <Article, object> >(getPropertyValue, target); #endregion PaginatedList <Article> boCollection = new PaginatedList <Article>(); //var roleId = listPageParameter.ObjectTypeID; if (String.IsNullOrEmpty(typeID)) { var tempCollection = await _boRepository.GetAllIncludingAsyn(x => x.CreatorUser); objectAmount = _boRepository.GetAll().Count(); if (listPageParameter.SortDesc == "") { boCollection = tempCollection.OrderByDescending(sortExpession).AsQueryable().ToPaginatedList(pageIndex, pageSize); } else { boCollection = tempCollection.OrderBy(sortExpession).AsQueryable().ToPaginatedList(pageIndex, pageSize); } } else { var tempCollection = await _articleInTopicRepository.GetAllIncludingAsyn(x => x.ArticleTopic, y => y.MasterArticle); var articleTopic = _articleTopicRepository.GetSingle(Guid.Parse(typeID)); var articleCollection = from x in tempCollection where x.ArticleTopic.Id == articleTopic.Id select x.MasterArticle; typeName = articleTopic.Name; objectAmount = tempCollection.Count(); if (listPageParameter.SortDesc == "") { boCollection = articleCollection.AsQueryable().OrderByDescending(sortExpession).ToPaginatedList(pageIndex, pageSize); } else { boCollection = articleCollection.AsQueryable().OrderBy(sortExpession).ToPaginatedList(pageIndex, pageSize); } } var boVMCollection = new List <ArticleVM>(); var counter = 0; foreach (var bo in boCollection) { var boVM = new ArticleVM(); _BoMapToVM(bo, boVM); boVM.OrderNumber = (++counter + (pageIndex - 1) * pageSize).ToString(); boVMCollection.Add(boVM); } listPageParameter.PageAmount = boCollection.TotalPageCount.ToString(); listPageParameter.ObjectAmount = boCollection.TotalCount.ToString(); listPageParameter.PagenateGroup = PagenateGroupRepository.GetItem <Article>(boCollection, 10, pageIndex); listPageParameter.Keyword = keyword; listPageParameter.TypeName = typeName; return(boVMCollection); }