public async Task <IEnumerable <Class> > GetClassesAsync(ClassDtoParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } var queryExpression = _context.Classes as IQueryable <Class>; if (!string.IsNullOrWhiteSpace(parameters.Name)) { parameters.Name = parameters.Name.Trim(); queryExpression = queryExpression.Where(x => x.ClassName == parameters.Name); } if (!string.IsNullOrWhiteSpace(parameters.SearchTerm)) { parameters.SearchTerm = parameters.SearchTerm.Trim(); queryExpression = queryExpression.Where(x => x.ClassName.Contains(parameters.SearchTerm)); } queryExpression = queryExpression.Skip(parameters.PageSize * (parameters.PageNumber - 1)) .Take(parameters.PageSize); return(await queryExpression.ToListAsync()); }
public async Task <ActionResult <IEnumerable <ClassDto> > > GetClasses( [FromQuery] ClassDtoParameters parameters) { var classes = await _classRepository.GetClassesAsync(parameters); var classDtos = _mapper.Map <IEnumerable <ClassDto> >(classes); return(Ok(classDtos)); }