public async Task <IList <Cidade> > Pesquisa(CidadeFiltroTo filtro, PesquisaTo pesquisa) { var consulta = _db.Cidade .Where(p => (string.IsNullOrEmpty(filtro.Codigo) || EF.Functions.Like(p.Codigo, $"%{filtro.Codigo}%")) && (string.IsNullOrEmpty(filtro.Nome) || EF.Functions.Like(p.Descricao, $"%{filtro.Nome}%")) && p.Situacao == 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 <Cidade> > Pesquisa(CidadeFiltroTo filtro, PesquisaTo pesquisa) { return(await _cidadeRepository.Pesquisa(filtro, pesquisa)); }