public PaginacaoModel2 <Venda, PreVenda, FiltroVenda> FiltrarVenda(PaginacaoModel2 <Venda, PreVenda, FiltroVenda> paginacao) { if (paginacao.Filtro == null) { paginacao.Filtro = new FiltroVenda(paginacao.Parametro1, paginacao.Parametro12, paginacao.Parametro13); } else { paginacao.Parametro1 = paginacao?.Filtro?.NomeCliente; paginacao.Parametro12 = paginacao?.Filtro?.CodigoCliente; paginacao.Parametro13 = paginacao?.Filtro?.ApelidoCliente; } var dataCaixa = CaixaAplicacao.ObterDataCaixaAtivo(); if (dataCaixa == DateTime.MinValue) { dataCaixa = DateTime.Now; } var query = VendaRepositorio.Query().Where(d => d.DataVenda >= dataCaixa); if (paginacao.Filtro.NomeCliente.TemValor()) { query = query.Where(d => d.Cliente.Nome.Contains(paginacao.Filtro.NomeCliente)); } if (paginacao.Filtro.CodigoCliente.TemValor()) { query = query.Where(d => d.Cliente.Codigo.Contains(paginacao.Filtro.CodigoCliente)); } if (paginacao.Filtro.ApelidoCliente.TemValor()) { query = query.Where(d => d.Cliente.Apelido.Contains(paginacao.Filtro.ApelidoCliente)); } paginacao.ListaModel = query.OrderBy(d => d.Id).Skip(((paginacao.Pagina - 1) * 10)).Take(10).ToList(); paginacao.QtdPaginas = query.Count().CalculaQtdPaginas().TransformaEmLista(); foreach (var item in paginacao.ListaModel) { if (item?.Cliente == null) { item.Cliente = ClienteAplicacao.BuscarClientePorId(item.IdCliente); } } return(paginacao); }