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); } }
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); }
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(); } } }