コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }