/// <summary> /// 根据筛选器筛选学生 /// </summary> /// <param name="filter"></param> /// <returns></returns> public IQueryable <Student> GetStudentsByFilter(FilterIds filter) { var students = GetStudentsByPostId(filter.introId); if (students == null) { return(null); } if (filter.gradeIds.Count > 0) { students = students.Where(s => filter.gradeIds.Contains(s.Grade)); } if (filter.introIds.Count > 0) { students = students.Where(s => filter.introIds.Contains(s.Signer.UserId)); } if (filter.majorIds.Count > 0) { students = students.Where(s => filter.majorIds.Contains((int)s.Major)); } if (filter.eduIds.Count > 0) { students = students.Where(s => filter.eduIds.Contains((int)s.Education)); } if (filter.schoolIds.Count > 0) { students = students.Where(s => filter.schoolIds.Contains(s.SchoolID)); } return(students); }
/// <summary> /// 根据筛选器筛选学生 /// </summary> /// <param name="filter"></param> /// <returns></returns> public async Task <ViewModels.PageResult <Student> > GetStudentsByFilter(FilterIds filter, string key, int pageSize, int page, string order, bool asc) { ViewModels.PageResult <Student> result = new ViewModels.PageResult <Student>(); var students = db.Students.Include(s => s.Signer); if (key == "" || key == null) { students = students.Where(s => filter.postIds.Contains(s.Signer.PostId)); } else { students = students.Where(s => s.IdCardNO == key || s.Name == key || s.QQ == key || s.MobilePhoneNO == key); } if (students.Count() == 0) { result.Data = null; result.Count = 0; result.CurrentPage = 1; result.Order = order; result.IsAsc = asc; return(result); } if (filter.gradeIds.Count > 0) { students = students.Where(s => filter.gradeIds.Contains(s.Grade)); } if (filter.introIds.Count > 0) { students = students.Where(s => filter.introIds.Contains(s.Signer.UserId)); } if (filter.majorIds.Count > 0) { students = students.Where(s => filter.majorIds.Contains((int)s.Major)); } if (filter.eduIds.Count > 0) { students = students.Where(s => filter.eduIds.Contains((int)s.Education)); } if (filter.schoolIds.Count > 0) { students = students.Where(s => filter.schoolIds.Contains(s.SchoolID)); } result.Count = students.Count(); var stu = asc ? LinqOrder.DataSort(students, order, "asc") : LinqOrder.DataSort(students, order, "desc"); result.Data = await stu.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync(); result.CurrentPage = page; result.Order = order; result.IsAsc = asc; result.PageSize = pageSize; return(result); }
public async Task <IHttpActionResult> GetByFilter(string strQuery, string key, int pageSize, int page, string order, bool isAsc) { FilterIds idsList = Newtonsoft.Json.JsonConvert.DeserializeObject <FilterIds>(strQuery); return(Ok(await studentManager.GetStudentsByFilter(idsList, key, pageSize, page, order, isAsc))); }
// GET: api/Students?strQuery="" public IQueryable <Student> GetByFilter(string strQuery) { FilterIds idsList = Newtonsoft.Json.JsonConvert.DeserializeObject <FilterIds>(strQuery); return(studentManager.GetStudentsByFilter(idsList)); }