Exemple #1
0
        public async Task <IList <Requisicao> > Pesquisa(RequisicaoFiltroTo filtro, PesquisaTo pesquisa)
        {
            //return _db.Clientes
            //    .Where(p => (!p.EmpresaId.HasValue || p.EmpresaId == empresaId)
            //    && p.Situacao == SituacaoEnum.Ativo
            //    && (string.IsNullOrEmpty(nome) || EF.Functions.Like(p.Nome, $"%{nome}%"))
            //    && (string.IsNullOrEmpty(documento) || EF.Functions.Like(p.CpfCnpj, $"%{documento}%")))
            //    .OrderByDescending(o => o.Id)
            //    .AsNoTracking()
            //    .Take(15)
            //    .ToListAsync();

            var consulta = _db.Requisicao.Include(r => r.NotaFiscalAutorizada).Include(r => r.Cidade).Include(r => r.Prestador).Include(r => r.ServicoWsSoap)
                           .Where(p => (string.IsNullOrEmpty(filtro.NumeroNota) || (p.NotaFiscalAutorizada.Numero == filtro.NumeroNota)) &&
                                  (!filtro.Referencia.HasValue || (p.Referencia == filtro.Referencia)) && p.Situacao == Core.Infraestrutura.Enum.SituacaoEnum.Ativo);

            if (pesquisa == null)
            {
                return(consulta.ToList());
            }

            int excludedRows = 0;

            pesquisa.TotalRegistros = consulta.Count();

            if (pesquisa.TamanhoPagina.HasValue && pesquisa.PaginaAtual.HasValue)
            {
                if (pesquisa.TotalRegistros <= pesquisa.TamanhoPagina || pesquisa.PaginaAtual <= 0)
                {
                    pesquisa.PaginaAtual = 1;
                }

                excludedRows = (pesquisa.PaginaAtual.Value - 1) * pesquisa.TamanhoPagina.Value;
            }

            if (excludedRows > 0)
            {
                consulta = consulta.Skip(excludedRows);
            }

            if (pesquisa.TamanhoPagina.HasValue)
            {
                consulta = consulta.Take(pesquisa.TamanhoPagina.Value);
            }

            return(consulta.ToList());
        }
Exemple #2
0
 public async Task <IList <Requisicao> > Pesquisa(RequisicaoFiltroTo filtro, PesquisaTo pesquisa)
 {
     return(await _requisicaoRepository.Pesquisa(filtro, pesquisa));
 }