protected void AsignarACYS(ref RadTreeNode nodoArbol, int nivel, int idAcys)
        {
            CN_CatCNac_Estructura cm_Estr = new CN_CatCNac_Estructura(model);
            CatCNac_Estructura    estr    = new CatCNac_Estructura();



            foreach (RadTreeNode nodo in nodoArbol.Nodes)
            {
                var nodoA = nodo;
                if (nodo.Level == nivelMax)
                {
                    estr.Id         = Int32.Parse(nodo.Value);
                    estr.Nivel_ACYS = nivel;
                    estr.id_Acys    = idAcys;
                    int id       = cm_Estr.CambiarNivel(estr);
                    var itemEstr = listEstructura.Where(x => x.Id == estr.Id).FirstOrDefault();
                    itemEstr.Nivel_ACYS = nivel;
                    itemEstr.id_Acys    = idAcys;
                }
                AsignarACYS(ref nodoA, nivel, idAcys);
            }
        }
        protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
        {
            RadTreeNode clickedNode = e.Node;


            var nodoA           = treeEstructura.Nodes[0];
            var hijosPrimerNodo = listEstructura.Where(x => x.Nivel == 1).ToList();

            if (e.MenuItem.Value.StartsWith("[ACYS]"))
            {
                var strValue = e.MenuItem.Value;
                strValue = strValue.Replace("[ACYS]", "");

                int idACYS = Int32.Parse(strValue);


                CN_CatCNac_Estructura cm_EstrACYS = new CN_CatCNac_Estructura(model);
                CatCNac_Estructura    estACYS     = new CatCNac_Estructura();
                if (clickedNode.Level == nivelMax && nivelMax >= 1)
                {
                    RadMenuItem itemPadre = ((RadMenuItem)(e.MenuItem.Owner));
                    itemPadre.Value = itemPadre.Value.Replace("Asignar", "");

                    estACYS.Id         = Int32.Parse(clickedNode.Value);
                    estACYS.Nivel_ACYS = 1;
                    estACYS.id_Acys    = idACYS;
                    int id       = cm_EstrACYS.CambiarNivel(estACYS);
                    var itemEstr = listEstructura.Where(x => x.Id == estACYS.Id).FirstOrDefault();
                    itemEstr.Nivel_ACYS = estACYS.Nivel_ACYS;
                    itemEstr.id_Acys    = idACYS;
                }
                else
                {
                    AsignarACYS(ref clickedNode, clickedNode.Level, idACYS);
                }

                AgregarControles(ref nodoA, hijosPrimerNodo, null);
            }
            else
            {
                switch (e.MenuItem.Value)
                {
                case "Nuevo":
                    RadTreeNode nodoNuevo = new RadTreeNode();
                    nodoNuevo.Selected = true;
                    nodoNuevo.ImageUrl = clickedNode.ImageUrl;
                    clickedNode.Nodes.Add(nodoNuevo);
                    clickedNode.Expanded = true;

                    //set node's value so we can find it in startNodeInEditMode
                    nodoNuevo.Value = "Nuevo - " + Guid.NewGuid().ToString();
                    StartNodeInEditMode(nodoNuevo.Value);

                    AgregarControles(ref nodoA, hijosPrimerNodo, nodoNuevo);

                    break;

                case "Asignar":
                    AsignarACYS(ref clickedNode, clickedNode.Level, 1);
                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;

                case "Asignar1":

                    CN_CatCNac_Estructura cm_Estr1 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est1     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 1)
                    {
                        est1.Id         = Int32.Parse(clickedNode.Value);
                        est1.Nivel_ACYS = 1;
                        int id       = cm_Estr1.CambiarNivel(est1);
                        var itemEstr = listEstructura.Where(x => x.Id == est1.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 1;
                    }


                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;

                case "Asignar2":

                    CN_CatCNac_Estructura cm_Estr2 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est2     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 2)
                    {
                        est2.Id         = Int32.Parse(clickedNode.Value);
                        est2.Nivel_ACYS = 2;
                        int id       = cm_Estr2.CambiarNivel(est2);
                        var itemEstr = listEstructura.Where(x => x.Id == est2.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 2;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Asignar3":

                    CN_CatCNac_Estructura cm_Estr3 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est3     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 3)
                    {
                        est3.Id         = Int32.Parse(clickedNode.Value);
                        est3.Nivel_ACYS = 3;
                        int id       = cm_Estr3.CambiarNivel(est3);
                        var itemEstr = listEstructura.Where(x => x.Id == est3.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 3;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Asignar4":

                    CN_CatCNac_Estructura cm_Estr4 = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    est4     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && nivelMax >= 4)
                    {
                        est4.Id         = Int32.Parse(clickedNode.Value);
                        est4.Nivel_ACYS = 4;
                        int id       = cm_Estr4.CambiarNivel(est4);
                        var itemEstr = listEstructura.Where(x => x.Id == est4.Id).FirstOrDefault();
                        itemEstr.Nivel_ACYS = 4;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);

                    break;

                case "Borrar":
                    clickedNode.Remove();

                    CN_CatCNac_Estructura cm_EstrA = new CN_CatCNac_Estructura(model);
                    var estrA = new CatCNac_Estructura();

                    estrA.Id = Int32.Parse(clickedNode.Value);

                    cm_EstrA.Borrar(estrA);
                    listEstructura.Remove(estrA);
                    AgregarControles(ref nodoA, hijosPrimerNodo, null);



                    break;

                default:

                    CN_CatCNac_Estructura cm_EstrD = new CN_CatCNac_Estructura(model);
                    CatCNac_Estructura    estD     = new CatCNac_Estructura();

                    if (clickedNode.Level == nivelMax && e.MenuItem.Value != "")
                    {
                        estD.Id             = Int32.Parse(clickedNode.Value);
                        estD.Sucursal       = Int32.Parse(e.MenuItem.Value);
                        estD.NombreSucursal = e.MenuItem.Text;
                        int id = cm_EstrD.CambiarSucursal(estD);

                        var itemEstr = listEstructura.Where(x => x.Id == estD.Id).FirstOrDefault();
                        itemEstr.Sucursal       = Int32.Parse(e.MenuItem.Value);
                        itemEstr.NombreSucursal = e.MenuItem.Text;
                    }

                    AgregarControles(ref nodoA, hijosPrimerNodo, null);
                    break;
                }
            }
        }