Пример #1
0
        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 + "%")));
 }