Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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)));
        }
Beispiel #4
0
        // GET: api/Students?strQuery=""
        public IQueryable <Student> GetByFilter(string strQuery)
        {
            FilterIds idsList = Newtonsoft.Json.JsonConvert.DeserializeObject <FilterIds>(strQuery);

            return(studentManager.GetStudentsByFilter(idsList));
        }