private short AdicionaMenus(Processo p, Menu m, /*Util.IniFile iniFile, */ EventHandler evento) { //string[] retINI = null; short ret = 0; short indexMenu = 0; IList <Processo> procs = null; if (p == null) { procs = new AcessoDados.DAO.BaseDAO <Processo>().Retorna(x => x.ProcessoPai == null); } else { procs = new AcessoDados.DAO.BaseDAO <Processo>().Retorna(x => x.ProcessoPai == p); } foreach (var item in procs) { m.MenuItems.Add(indexMenu, new MenuItem(item.Nome, evento)); m.MenuItems[indexMenu].Tag = item; AdicionaMenus(item, m.MenuItems[indexMenu], evento); indexMenu++; } return(indexMenu); }
private void Pesquisar(string p) { IList <Processo> processos = null; Processo proc = null; BancoDados.AbrirSessao(); AcessoDados.ExpressaoDinamica <Processo> eDinam = new Auxil.AcessoDados.ExpressaoDinamica <Processo>(); Expression e2; Expression e1; foreach (var item in p.Split(' ')) { e1 = Expression.OrElse(eDinam.Contem(item.ToLower(), eDinam.Propriedade(typeof(Processo).GetProperty("Nome"))), eDinam.Contem(item.ToUpper(), eDinam.Propriedade(typeof(Processo).GetProperty("Nome")))); e2 = Expression.AndAlso( Expression.OrElse(eDinam.Contem(item.ToLower(), eDinam.Propriedade(typeof(Processo).GetProperty("Valor"))), eDinam.Contem(item.ToUpper(), eDinam.Propriedade(typeof(Processo).GetProperty("Valor")))), Expression.Equal(eDinam.Propriedade(typeof(Processo).GetProperty("ValorPesquisavel")), eDinam.Constante(true, typeof(Processo).GetProperty("ValorPesquisavel").PropertyType))); eDinam.AddExpressao(Expression.OrElse(e1, e2)); } //Criar query normal e converter em objeto https://www.tutorialspoint.com/hibernate/hibernate_native_sql.htm processos = new AcessoDados.DAO.BaseDAO <Processo>().Retorna(eDinam.Montar()); foreach (var item in processos) { if (Auxil.Properties.Settings.Default.ListaMaiusculo) { item.Nome = item.Nome.ToUpper(); } if (!item.Inativo && !string.IsNullOrEmpty(item.Valor) && !item.Complemento) { lstItens.Items.Add(item);//(!short.TryParse(p, out ret) || short.Parse(p) >= 0 ? p + "." : "") + index + " - " + retINI[0]); } else if (item.Complemento && processos.Where(x => x.Id == item.ProcessoPai.Id).Count() == 0) { lstItens.Items.Add(item.ProcessoPai); } } BancoDados.FecharSessao(); }
private bool BuscaComplementos(Processo proc) { try { BancoDados.AbrirSessao(); IList <Processo> procs = new AcessoDados.DAO.BaseDAO <Processo>().Retorna(x => x.ProcessoPai == proc && x.Complemento == true); if (procs.Count > 0 && !proc.ValorPesquisavel) { lstItens.Items.Add(proc); } for (int i = lstItens.Items.Count - 1; i >= 0; i--) { if (((Processo)lstItens.Items[i]).Complemento) { lstItens.Items.RemoveAt(i); } } foreach (Processo item in lstItens.Items) { if (item.Complemento) { lstItens.Items.Remove(item); } } foreach (var item in procs) { lstItens.Items.Add(item); } return(procs.Count > 0); } catch (Exception) { return(false); } finally { BancoDados.FecharSessao(); } }