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()); }
public async Task <IList <Requisicao> > Pesquisa(RequisicaoFiltroTo filtro, PesquisaTo pesquisa) { return(await _requisicaoRepository.Pesquisa(filtro, pesquisa)); }