public async Task <IActionResult> GetCourses([FromQuery] CourseParams courseParams) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var courses = await _courseRepository.GetCourses(courseParams); var coursesForReturn = _mapper.Map <IEnumerable <CourseForList> >(courses); Response.AddPagination(courses.CurrentPage, courses.PageSize, courses.TotalCount, courses.TotalPages); return(Ok(coursesForReturn)); }
public async Task <PagedList <Course> > GetCourses(CourseParams courseParams) { var courses = _context.Courses .Include(x => x.AccountCreated) .Include(x => x.CourseInfo) .Include(x => x.Opinions) .Where(x => x.CourseType == (CourseTypeEnum)courseParams.CourseType && x.Status == CourseStatusEnum.Accepted) .AsQueryable(); if (!string.IsNullOrEmpty(courseParams.SearchedTitle) && !string.IsNullOrWhiteSpace(courseParams.SearchedTitle)) { courses = courses.Where(x => x.Name.Contains(courseParams.SearchedTitle)); } return(await PagedList <Course> .CreateAsync(courses, courseParams.PageNumber, courseParams.PageSize)); }