public async Task <IEnumerable <Course> > GetCoursesAsync(CourseDtoParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } var queryExpression = _context.Courses as IQueryable <Course>; if (!string.IsNullOrWhiteSpace(parameters.Name)) { parameters.Name = parameters.Name.Trim(); queryExpression = queryExpression.Where(x => x.CourseName == parameters.Name); } if (!string.IsNullOrWhiteSpace(parameters.SearchTerm)) { parameters.SearchTerm = parameters.SearchTerm.Trim(); queryExpression = queryExpression.Where(x => x.CourseName.Contains(parameters.SearchTerm)); } queryExpression = queryExpression.Skip(parameters.PageSize * (parameters.PageNumber - 1)) .Take(parameters.PageSize); return(await queryExpression.ToListAsync()); }
//查询Course public async Task <IEnumerable <Course> > GetCoursesAsync(CourseDtoParameters courseDtoParameters) { if (courseDtoParameters == null) { throw new ArgumentNullException(nameof(courseDtoParameters)); } //如果 筛选条件 和 查询字符串 都为空的话 if (string.IsNullOrWhiteSpace(courseDtoParameters.CourseName) && string.IsNullOrWhiteSpace(courseDtoParameters.SearchTerm)) { return(await _context.Courses.ToListAsync()); } var courseItems = _context.Courses as IQueryable <Course>; //筛选条件 if (!string.IsNullOrWhiteSpace(courseDtoParameters.CourseName)) { courseDtoParameters.CourseName = courseDtoParameters.CourseName.Trim(); courseItems = courseItems.Where(x => x.CourseName == courseDtoParameters.CourseName); } //查询条件 if (!string.IsNullOrWhiteSpace(courseDtoParameters.SearchTerm)) { courseDtoParameters.SearchTerm = courseDtoParameters.SearchTerm.Trim(); courseItems = courseItems.Where(x => x.CourseName.Contains(courseDtoParameters.SearchTerm) || x.CourseCode.Contains(courseDtoParameters.SearchTerm)); } return(await courseItems.ToListAsync()); }
public async Task <ActionResult <IEnumerable <CourseDto> > > GetCourses([FromQuery] CourseDtoParameters courseDtoParameters) { var courses = await _courseRepository.GetCoursesAsync(courseDtoParameters); var courseDtos = _mapper.Map <IEnumerable <CourseDto> >(courses); return(Ok(courseDtos)); }
public async Task <ActionResult <IEnumerable <CourseDto> > > GetCourses( Guid classId, Guid studentId, [FromQuery] CourseDtoParameters parameters ) { if (!await _classRepository.ClassExitAsync(classId)) { NotFound(); } if (!await _studentRepository.StudentExitAsync(studentId)) { NotFound(); } var courses = await _courseRepository.GetCoursesAsync(parameters); var courseDtos = _mapper.Map <IEnumerable <CourseDto> >(courses); return(Ok(courseDtos)); }