private void AplicarFiltro(IBuscaComFiltro <Cadastro> busca, PesquisaCadastro pesquisa) { //TESTE: aqui se utiliza desta constante, para permitir todos os horários do dia final da pesquisa. Isso não é a melhor maneira de fazer isso. //Além disso, existe um problema nas comparações feitas. //Faça as coreções e alterações que achar necessária. //Dica: há um outro TESTE que requer adicionar um filtro, então vai ser necessário adicionar aqui. const int de23h59m59s = 86399; if (!string.IsNullOrWhiteSpace(pesquisa.Nome)) { busca.NomeLike(pesquisa.Nome); } if (pesquisa.CadastroDe.HasValue) { busca.Propriedade(x => x.HoraCadastro > pesquisa.CadastroDe); } if (pesquisa.CadastroAte.HasValue) { busca.Propriedade(x => x.HoraCadastro < pesquisa.CadastroAte.Value.AddSeconds(de23h59m59s)); } if (pesquisa.NascimentoDe.HasValue) { busca.Propriedade(x => x.DataNascimento > pesquisa.NascimentoDe); } if (pesquisa.NascimentoAte.HasValue) { busca.Propriedade(x => x.DataNascimento < pesquisa.NascimentoAte.Value.AddSeconds(de23h59m59s)); } }
public static IBuscaComFiltro <Cadastro> NomeLike(this IBuscaComFiltro <Cadastro> that, string comparacao) { return(that.Propriedade(x => EF.Functions.Like(x.Nome, "%" + comparacao + "%"))); }