public static List<SomeHierarchyViewModel> RetornaListaCodMaeNulo(List<CM_CTABM> ListaTodosItens, List<SomeHierarchyViewModel> list) { List<SomeHierarchyViewModel> outerItems = new List<SomeHierarchyViewModel>(); bool _addEmptyLevel = true; foreach (CM_CTABM c in ListaTodosItens.Where(p => p.CodMae == "")) { //Cria um item primeiro nível vazio, caso o usuário não deseje selecionar nada if (_addEmptyLevel) { CM_CTABM cm = new CM_CTABM(); cm.Texto = " "; cm.CodMae = ""; cm.CodInt = 0; cm.Codigo = "0"; SomeHierarchyViewModel s = new SomeHierarchyViewModel(cm.Texto, null); s.ItemAtual = cm; s.CodInt = cm.CodInt; outerItems.Add(s); list.Add(s); _addEmptyLevel = false; } SomeHierarchyViewModel o = new SomeHierarchyViewModel(c.Texto, null); o.ItemAtual = c; o.CodInt = c.CodInt; outerItems.Add(o); list.Add(o); } return outerItems; }
public static List <GIInputCheckbox> Retorna(Tab tab, string checks) { if (Items.Count > 0) { Items.Clear(); } if (LastItems.Count > 0) { LastItems.Clear(); } var itemsCheck = RetornaListaItemsChecados(checks); List <GIInputCheckbox> list = new List <GIInputCheckbox>(); List <CM_CTABM> listCM = new List <CM_CTABM>(); string sql = "SELECT CodMae, Codigo, CodInt, Texto, Descr, Ativo FROM cm_ctabm WHERE Tab = " + TabToString(tab) + " ORDER BY 1,2"; using (var bd = FactoryGI_LibBD.GI_LibBD(TipoBDAcessar.bdGI)) { var dr = bd.AbreSQL(sql); while (dr.Read()) { var x = new CM_CTABM().Preenche(dr); foreach (string s in itemsCheck) { var teste = s.Trim(); if (teste.Equals(x.CodInt)) { x.Checked = true; } } listCM.Add(x); } } List <SomeHierarchyViewModel> TodosMae = RetornaListaCodMaeNulo(listCM); foreach (var m in TodosMae) { RetornaListaFilhosRecursivo(listCM, m); } RetornaUltimoNivel(Items); foreach (var x in LastItems) { GIInputCheckbox check = new GIInputCheckbox(); check.Content = x.Title; check.Tag = x.CodInt; check.IsChecked = x.IsChecked; list.Add(check); } return(list); }