Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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));
        }