Array
(
)

Como realizar pesquisa com mais de um parametro?

Delivery-ti
|
MVP
Pontos: 525
    18 jul 2014

Ola galera estou com um problema acredito que pequeno mas ainda nao consegui resolver. Seguinte tenho uma textBox que é para realizar uma pesquisa, assim que o usuario informar o que pesquisa ex.:(uma cidade ou tipo de profissional) eu fiz aqui galera deu tudo certo porem ele esta realizando a pesquisa somente quando informo o profissional nao sei como fazer para passar dois parametros? deem uma olhada como esta a pesquisa e os metodos.
Clique na imagem para abrir em uma nova janela
E os codigos:
#Código

 public List<SERVICO> BuscarServicoProfissional(string textoPesquisa)
        {
            return Find(s => s.TIPOPROFISSIONAL.descTipoProf.Contains(textoPesquisa)).ToList();
        }

        public List<SERVICO> BuscarServicoCidade(string textoPesquisa)
        {
            return Find(s => s.cidade.Contains(textoPesquisa)).ToList(); 
        }

Bem aqui é o metodo que realiza a pesquisa e retorna o que foi pesquisado no textBoxSearch, porem criei dois metodos galera pois achei que daria certo mas ele nao funciona so pesquisa pelo profissional pela cidade ele retorna vazio. tinha tentado fazer assim:
#Código
  public List<SERVICO> BuscarServicoProfissional(string textoPesquisa)
        {
            return Find(s => s.TIPOPROFISSIONAL.descTipoProf.Contains(textoPesquisa)).ToList() || Find(s => s.cidade.Contains(textoPesquisa)).ToList(); 
        }

Porem sem sucesso algum ele da erro depois do || ...
Se alguem souber como faço para resolver agradeço muito galera pois na minha pesquisa o ideia seria ele pesquisar pelo tipo de profissional ou pela cidade e só esta funcionando pelo profissional.
Grato. Delivery TI.

Joel Rodrigues
   - 18 jul 2014

Está dando erro porque o OU ( || ) deve ficar dentro da query, ou seja:
#Código

Find(s => s.TIPOPROFISSIONAL.descTipoProf.Contains(textoPesquisa) || s.cidade.Contains(textoPesquisa)).ToList();

Delivery-ti
|
MVP
Pontos: 525
    18 jul 2014

O Joel deu certo cara mas não é querendo abusar mas tentei um uma pesquisa adicionar tambem uma comparação do codigo que é inteiro. Mas ele nao aparece pra mim o Contains entao coloquei o Compare quando fui testar ele deu erro...?

E que tem uma peaquisa que seria muito util se eu pesquisar pelo codigo tambem.

Grato Delivey TI.

Joel Rodrigues
   - 23 jul 2014

O Contains é para strings, você quer realmente usá-lo para comparar inteiros? Não seria uma comparação de igualdade nesse caso?
Se for ocaso de usar o Cotnains, converta os dois lados para string e dará certo. Se quiser usar uma comparação de igualdade, use o Equals

Delivery-ti
|
MVP
Pontos: 525
    23 jul 2014

Ha blz Joel ja consegui aqui usei esse equals mesmo, e que tem uma pagina aqui que o melhor e se alem da cidade e do tipo de profissao o usuario poder pesquisar pelo codigo. Mas obrigadao pela ajuda.
Eu sempre faço as peguntas de alguns problemas que tenho e ainda continua tentando e quebrando a cabeça aqui, e as vezes chego na solução.

Mas valeu. Grato Delivery TI.

Joel Rodrigues
   - 25 jul 2014

Show de bola que deu certo.
É assim mesmo que tem que ser, perguntamos mas continuamos tentando.
Um abraço e bons códigos.

Delivery-ti
|
MVP
Pontos: 525
    28 jul 2014

Ola Joel tenho um problema que não verdade ainda não é nem um erro acredito que seja uma regra da própria classe do DataList, é o seguinte eu tenho dentro do meu DataList o ItemTemplate e o AlternateItem que mostra os dados aleatoriamente tudo correto,,, Mas dentro de cada item destes eu tenho uma modal que mostra os dados do profissional, embaixo eu tenho uma aba que tem 3 opções:

- Comentários sobre o profissional
-fazer um comentário
- avaliar o profissional

pois bem. Na primeira cara eu tenho uma panel e quero fazer com que apareça apenas 15 ou 20 comentários e não que fique uma scrollbar infinita, o que pretendo é fazer com que toda vez que chegar no numero máximo de comentários ex,:(se eu definir 15 quando estiver os 15 comentários ao entrar o próximo o primeiro seja apagado uma coisa rotativa), entendeu?

Agora problemas da classe que dize acima, quando tento acessar o método click do botão que esta dentro do datalist e dentro dessa modal, ele da um erro e fala que não existe o btnComentar_Click, e nem mesmo o textBox que o cara digita o comentário ele não consegue encontrar isso acontece também para a aba que o cara avalia o profissional que tem o radioBottom e o btnValiar_Click ele da o mesmo erro.

Com todo certeza você sabe mas so para deixar claro para eu acessar alguma classe que eu coloque dentro do DataList ate onde eu sei eu tenho que verificar que tipo é:

ex #Código

      if(e.Item.UtemType != ListItemType.Header && e.Item.UtemType != ListItemType.Footer)
     {
          //agora sim eu consigo acessar as classes que eu chamar dentro do dataList
         ((label)e.Item.FindControl("lblTelefone")).Text = ((PROFISSIONAL)e.Item.DataItem).foneProfissional;
     }


Então dessa maneira que eu sei trabalhar com o DataList não sei se tem outra saída você conhece?

E que eu não queria fazer uma pagina inteira so para o cara deixar um comentário, ou então para avaliar o profissional na própria pagina de detalhes ou melhor nessa modal que ele abre para ver mais informações do profissional ele já faz o comentário e também pode avalia-lo.

Tem como dar umas dicar Joel?

Grato Deliveru-TI.

Joel Rodrigues
   - 28 jul 2014

Vamos fazer manter o foco do assunto no tópico, beleza? Para novas dúvidas, por favor abra um novo tópico, pois facilita a busca futuramente.