public void AddFilho(Node filho) { if (filho != null) { filho.Pai = this; Filhos.Add(filho); } }
public void AddFilho(Pessoa filho) { Filhos.Add(filho); }
/// <summary> /// Executa o processamento das opções. /// </summary> private void ProcessarOpcoes() { var opcoes = new List <string>(); var itens = new List <ItemInfo>(); if (!string.IsNullOrEmpty(ListaSelecao)) { opcoes.AddRange(ListaSelecao.TrimEnd('|').Split('|')); } if (!string.IsNullOrEmpty(ListaItens)) { itens.AddRange(ListaItens.TrimEnd('|').Split('|').Select(f => ItemInfo.Parse(f)).Where(f => f != null)); } // Se o controle possuir lista de opções if (TipoControle != Glass.Data.Model.TipoControleBenef.SelecaoSimples && TipoControle != Glass.Data.Model.TipoControleBenef.Quantidade) { var atualizados = new List <Glass.Global.Negocios.Entidades.BenefConfig>(); // Insere a lista de opções for (var i = 0; i < opcoes.Count; i++) { // Tenta recupera o beneficiamento existente var benef = Filhos.FirstOrDefault(f => StringComparer.InvariantCultureIgnoreCase.Equals(f.Nome, opcoes[i])); if (benef == null) { benef = new Negocios.Entidades.BenefConfig(); benef.IdParent = IdBenefConfig; // Recupera o nome da opção benef.Nome = opcoes[i]; Filhos.Add(benef); } benef.Descricao = benef.Nome; benef.CobrarAreaMinima = CobrarAreaMinima; benef.TipoEspessura = CobrarPorEspessura ? Glass.Data.Model.TipoEspessuraBenef.ItemPossui : Glass.Data.Model.TipoEspessuraBenef.ItemNaoPossui; benef.Situacao = Glass.Situacao.Ativo; benef.TipoCalculo = TipoCalculo; var item = itens[i]; benef.IdProcesso = item.IdProcesso; benef.IdAplicacao = item.IdAplicacao; benef.IdProd = item.IdProd; benef.AcrescimoAltura = item.AcrescimoAltura; benef.AcrescimoLargura = item.AcrescimoLargura; atualizados.Add(benef); } // Recupera os filhos que devem ser apagados foreach (var i in Filhos.Where(f => !atualizados.Exists(x => f.Equals(x))).ToArray()) { Filhos.Remove(i); } } }