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);
            }
            public async Task <JerarquiaVM> Handle(JerarquiaPersonaGSQuery request, CancellationToken cancellationToken)
            {
                string codPersona       = request.codPersona;
                var    jerarquiaPersona = await _context.TJerarquiaPersona.FirstOrDefaultAsync(i => i.CodPersona == codPersona);

                if (jerarquiaPersona == null)
                {
                    return(new JerarquiaVM());
                }

                var jerarquiaEj = _context.TJerarquia.Where(i => i.CodPosicion == jerarquiaPersona.CodPosicion).Include(i => i.Padre).First();

                JerarquiaNodeVM jerarquiaPadre = new JerarquiaNodeVM();

                jerarquiaPadre.data      = jerarquiaEj.CodPosicion;
                jerarquiaPadre.label     = jerarquiaEj.Descripcion;
                jerarquiaPadre.Tipo      = jerarquiaEj.Tipo;
                jerarquiaPadre.CodElipse = jerarquiaEj.CodElipse;

                nodos = new JerarquiaVM();
                nodos.data.Add(jerarquiaPadre);
                //if (Jerarquia.Tipo == "O" || Jerarquia.Tipo == "S" || Jerarquia.Tipo == "G" && Jerarquia.Estado == true) {
                if (jerarquiaEj.Tipo != "G")
                {
                    recursion(jerarquiaEj);
                }

                nodos.count = nodos.data.Count;
                return(nodos);
            }