public void recursion(TJerarquia nodo) { JerarquiaNodeVM jerarquiaPadre = new JerarquiaNodeVM(); jerarquiaPadre.data = nodo.CodPosicion; jerarquiaPadre.label = nodo.Descripcion; jerarquiaPadre.Tipo = nodo.Tipo; jerarquiaPadre.CodElipse = nodo.CodElipse; TJerarquia padre = _context.TJerarquia.Where(i => i.CodPosicion == nodo.CodPosicionPadre).Include(i => i.Padre).First(); if (nodo.Tipo != "G") { if (nodo.Tipo == "S" && estadoS) { estadoS = false; nodos.data.Add(jerarquiaPadre); } } else { if (nodo.Tipo == "G" && estadoG) { estadoG = false; nodos.data.Add(jerarquiaPadre); return; } } recursion(padre); }
private async Task <List <TJerarquia> > GetJeraquiaSG(string codPersona) { var jerarquiaPersona = await _context.TJerarquiaPersona.FirstOrDefaultAsync(i => i.CodPersona == codPersona); bool estadoG = true, estadoS = true; if (jerarquiaPersona == null) { return(null); } List <TJerarquia> list = new List <TJerarquia>(); TJerarquia iter = _context.TJerarquia.Where(i => i.CodPosicion == jerarquiaPersona.CodPosicion).FirstOrDefault(); while (iter != null && (estadoG || estadoS)) { if (iter.Tipo == "S" && estadoS) { estadoS = false; list.Add(iter); } if (iter.Tipo == "G" && estadoG) { estadoG = false; list.Add(iter); } iter = _context.TJerarquia.Where(i => i.CodPosicion == iter.CodPosicionPadre).FirstOrDefault(); } return(list); }
public JerarquiaNodeVM recursion(TJerarquia it) { var jerarquiaPadre = new JerarquiaNodeVM(); jerarquiaPadre.data = it.CodPosicion; jerarquiaPadre.label = it.Descripcion; jerarquiaPadre.Tipo = it.Tipo; jerarquiaPadre.CodElipse = it.CodElipse; if (it.Hijos.Count == 0) { return(jerarquiaPadre); } if (it.Hijos.Count > 0) { foreach (var hijo in it.Hijos) { if (hijo.Tipo != "O" && hijo.Estado && hijo.Visible) { jerarquiaPadre.children.Add(recursion(hijo)); } } } return(jerarquiaPadre); }
public async Task <Unit> Handle(CreateJerarquiaNodeCommand request, CancellationToken cancellationToken) { if (request.Tipo == "G" || request.Tipo == "S" || request.Tipo == "O") { var entity = new TJerarquia(); var JerarquiaPadre = await _context.TJerarquia.FirstOrDefaultAsync(u => u.CodPosicion == request.NodeParent).ConfigureAwait(true); if (JerarquiaPadre != null) { entity.CodPosicion = nextCod(); entity.CodPosicionPadre = JerarquiaPadre.CodPosicion; entity.Descripcion = request.Description; entity.CodElipse = request.CodElipse; entity.PathJerarquia = JerarquiaPadre.PathJerarquia + entity.CodPosicion.ToString() + "/"; entity.NivelJerarquia = (short)(JerarquiaPadre.PathJerarquia.Split('/').Length - 1); entity.Tipo = request.Tipo; entity.Estado = true; _context.TJerarquia.Add(entity); await _context.SaveChangesAsync(cancellationToken); } else { new GeneralFailureException("Nodo padre no fue encontrado"); } } else { new TipoJerarquiaException(); } return(Unit.Value); }