Пример #1
0
        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());
        }
Пример #2
0
        //查询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());
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }