public async Task <PagedQueries <Product> > GetAllProductsPaginatedAsync(int pageIndex, int pageSize, string nameFilter, int price, CancellationToken ct) { try { var querie = _context.Product.AsNoTracking(); if (price > 0) { querie = querie.Where(x => x.Price > price).AsNoTracking(); } if (!string.IsNullOrWhiteSpace(nameFilter)) { querie = querie.Where(x => EF.Functions.Like(x.Name.ToLower(), $"%{nameFilter.ToLower()}%")).AsNoTracking(); } var pagedQueries = await PagedQueries <Product> .CreateAsync(querie, pageIndex, pageSize, ct); return(pagedQueries); } catch (Exception ex) { throw new Exception("Erro ao buscar produtos", ex); } }
public async Task <PagedQueries <Agenda> > BuscarAgendasPaginadas(Guid pessoaId, int pageIndex, int pageSize) { try { var query = _context.Agenda .Include(x => x.TipoAgenda) .Where(x => x.PessoaId.Equals(pessoaId) && x.Status.Equals(true)) .OrderBy(x => x.Nome) .AsNoTracking(); return(await PagedQueries <Agenda> .Create(query, pageIndex, pageSize)); } catch (Exception ex) { throw new Exception("Erro ao buscar as agendas para o seu usuário", ex); } }
public PagedQueries <PessoaResponse> GetPessoas(int pageSize, int pageIndex, int minimoTelefones) { try { var query = _context.Pessoa .Select(x => new PessoaResponse { PessoaId = x.PessoaId, DataNascimento = x.DataNascimento, Nome = x.Nome, QuantidadeTelefones = _context.Telefone.Where(y => y.PessoaId.Equals(x.PessoaId)).Count() }) .Where(x => x.QuantidadeTelefones >= minimoTelefones) .OrderBy(x => x.Nome.ToLower()) .AsNoTracking(); return(PagedQueries <PessoaResponse> .Create(query, pageIndex, pageSize)); } catch (Exception ex) { throw new Exception("Erro ao buscar pessoas", ex); } }