示例#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 void PersonalizarConsulta(IPesquisaPersonalizada personalizacao, IConfiguracaoQuery config)
 {
     if (personalizacao != null)
     {
         personalizacao.PersonalizarPesquisa(config);
     }
 }
 private void DefinirTopUm(IConfiguracaoQuery configuracao)
 {
     if (configuracao == null)
     {
         return;
     }
     configuracao.DefinirLimite(1);
 }
示例#4
0
 protected void DefinirTopUm(IConfiguracaoQuery <TObjeto> configuracao)
 {
     if (configuracao == null)
     {
         return;
     }
     configuracao.DefinirLimite(1);
 }
示例#5
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);
 }
示例#6
0
        private IList <object> ConverterConsultaEmObjeto(IConfiguracaoQuery config, int pagina)
        {
            var resultado    = new List <object>();
            var tabela       = _contexto.Buscar().Varios(config);
            var propriedades = _configuracao.TipoObjeto.GetProperties();

            for (int indice = (pagina - 1) * 10; indice < pagina * 10; indice++)
            {
                if (indice >= tabela.Rows.Count)
                {
                    break;
                }
                var registro = tabela.Rows[indice];
                resultado.Add(ConverterRegistroEmObjeto(propriedades, tabela, registro));
            }
            return(resultado);
        }
示例#7
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();
                }
            }
        }