示例#1
0
        private void AdicionarFiltroDoTermoPesquisado(IConfiguracaoQuery config, string termo)
        {
            var pesquisaChave = config.DefinirParametro("pesquisaChave");

            pesquisaChave.Valor(true);

            var sql = new StringBuilder();

            sql.Append("(");

            sql.Append("((@pesquisaChave=1) and ");

            sql.Append(CriarFiltroPorChaveIgualAoTermo(termo));

            sql.Append(")");

            sql.Append("or");

            sql.Append("((@pesquisaChave=0) and ");

            sql.Append(CriarFiltroPorResultadoContendo(termo));

            sql.Append(")");

            sql.Append(")");

            config.AdicionarCondicaoPersonalizada(sql.ToString());

            if (!_contexto.Buscar().Existe(config))
            {
                pesquisaChave.Valor(false);
            }
        }
示例#2
0
 private IConfiguracao <TObjeto> CriarConfiguradorDaChave(IConfiguracaoQuery <TObjeto> query, TObjeto objeto)
 {
     foreach (var item in _dicionario.ConsultarCamposChave())
     {
         var valor = item.Propriedade.GetValue(objeto, null);
         query.AdicionarCondicaoPersonalizada(string.Concat("([", item.Nome, "]=@c", item.Id, ")"));
         query.DefinirParametro(string.Concat("c", item.Id)).Tipo(item.TipoBanco, valor);
     }
     return(query);
 }
示例#3
0
        private void AdicionarFiltroDosDependentesInformados(IDependente configuracaoDependentes, IConfiguracaoQuery config, string[] dependentes)
        {
            if (configuracaoDependentes == null)
            {
                return;
            }
            var camposDependentes = new List <Dependente>();

            configuracaoDependentes.ConfigurarDependentes(camposDependentes);
            for (int indice = 0; indice < camposDependentes.Count; indice++)
            {
                var nomeParametro = string.Concat("@dependente", indice + 1);
                config.AdicionarCondicaoPersonalizada(camposDependentes[indice].CondicaoSql);
                if (indice < dependentes.Length)
                {
                    config.DefinirParametro(nomeParametro).Valor(dependentes[indice]);
                }
                else
                {
                    config.DefinirParametro(nomeParametro).Nulo();
                }
            }
        }