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; } } }
protected void btnCargaExcel_Click(object sender, EventArgs e) { HttpPostedFile filePosted = Request.Files[0]; string pathArchivo = "c:\\KeyWeb_Log\\excelTempCC.xlsx"; filePosted.SaveAs(pathArchivo); var excelFile = new ExcelQueryFactory(pathArchivo); var miHoja = excelFile.Worksheet(0).Select(x => x).ToList(); CN_CatCNac_Estructura cm_Estr = new CN_CatCNac_Estructura(model); using (TransactionScope scope = new TransactionScope()) { try { cm_Estr.Borrar(Int32.Parse(Request.QueryString["Id"])); listEstructura.Clear(); int padre1 = 0; int padre2 = 0; int padre3 = 0; int padre4 = 0; foreach (var item in miHoja) { CatCNac_Estructura est = new CatCNac_Estructura(); est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); //Nivel 1 if (item["Nivel ACYS"] == null) { throw new Exception("Falta la columna Nivel ACYS"); } if (item["ACYS"] == null) { throw new Exception("Falta la columna ACYS"); } if (item["Sucursal"] == null) { throw new Exception("Falta la columna Sucursal"); } if (nivelMax >= 1) { est.NombreNodo = item[0].Value.ToString(); if (!this.listEstructura.Exists(x => x.NombreNodo == est.NombreNodo && x.Id_Matriz == est.Id_Matriz && x.Nivel == 1)) { est.Nivel = 1; est.NodoPadre = 0; if (nivelMax == 1) { est.Nivel_ACYS = item["Nivel ACYS"].Cast <int>(); var acysC = listaACYS.Where(x => x.Nombre == item["ACYS"]).FirstOrDefault(); if (acysC == null) { throw new Exception("El acys no existe: " + item["ACYS"]); } int idAcys = acysC.Id; est.id_Acys = idAcys; est.Sucursal = item["Sucursal"].Cast <int>(); var suc = listaSucursales.Where(x => x.Id_Cd == est.Sucursal).FirstOrDefault(); if (suc == null) { throw new Exception("La Sucursal no existe: " + item["Sucursal"]); } est.NombreSucursal = item["Sucursal"] + " - " + suc.Cd_Nombre; } int resId = cm_Estr.Alta(est); est.Id = resId; padre1 = resId; listEstructura.Add(est); } } if (nivelMax >= 2) { //Nivel 2 est = new CatCNac_Estructura(); est.NombreNodo = item[1].Value.ToString(); est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); if (!this.listEstructura.Exists(x => x.NombreNodo == est.NombreNodo && x.Id_Matriz == est.Id_Matriz && x.Nivel == 2 && x.NodoPadre == padre1)) { est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); est.Nivel = 2; est.NodoPadre = padre1; if (nivelMax == 2) { est.Nivel_ACYS = item["Nivel ACYS"].Cast <int>(); var acysC = listaACYS.Where(x => x.Nombre == item["ACYS"]).FirstOrDefault(); if (acysC == null) { throw new Exception("El acys no existe: " + item["ACYS"]); } int idAcys = acysC.Id; est.id_Acys = idAcys; est.Sucursal = item["Sucursal"].Cast <int>(); var suc = listaSucursales.Where(x => x.Id_Cd == est.Sucursal).FirstOrDefault(); if (suc == null) { throw new Exception("La Sucursal no existe: " + item["Sucursal"]); } est.NombreSucursal = item["Sucursal"] + " - " + suc.Cd_Nombre; } int resId = cm_Estr.Alta(est); est.Id = resId; padre2 = resId; listEstructura.Add(est); } } if (nivelMax >= 3) { //Nivel 3 est = new CatCNac_Estructura(); est.NombreNodo = item[2].Value.ToString(); est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); if (!this.listEstructura.Exists(x => x.NombreNodo == est.NombreNodo && x.Id_Matriz == est.Id_Matriz && x.Nivel == 3 && x.NodoPadre == padre2)) { est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); est.Nivel = 3; est.NodoPadre = padre2; if (nivelMax == 3) { est.Nivel_ACYS = item["Nivel ACYS"].Cast <int>(); var acysC = listaACYS.Where(x => x.Nombre == item["ACYS"]).FirstOrDefault(); if (acysC == null) { throw new Exception("El acys no existe: " + item["ACYS"]); } int idAcys = acysC.Id; est.id_Acys = idAcys; est.Sucursal = item["Sucursal"].Cast <int>(); var suc = listaSucursales.Where(x => x.Id_Cd == est.Sucursal).FirstOrDefault(); if (suc == null) { throw new Exception("La Sucursal no existe: " + item["Sucursal"]); } est.NombreSucursal = item["Sucursal"] + " - " + suc.Cd_Nombre; } int resId = cm_Estr.Alta(est); est.Id = resId; padre3 = resId; listEstructura.Add(est); } } if (nivelMax >= 4) { //Nivel 4 est = new CatCNac_Estructura(); est.NombreNodo = item[3].Value.ToString(); est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); if (!this.listEstructura.Exists(x => x.NombreNodo == est.NombreNodo && x.Id_Matriz == est.Id_Matriz && x.Nivel == 4 && x.NodoPadre == padre3)) { est.Id_Matriz = Int32.Parse(Request.QueryString["Id"]); est.Nivel = 4; est.NodoPadre = padre3; est.Nivel_ACYS = item["Nivel ACYS"].Cast <int>(); var acysC = listaACYS.Where(x => x.Nombre == item["ACYS"]).FirstOrDefault(); if (acysC == null) { throw new Exception("El acys no existe: " + item["ACYS"]); } int idAcys = acysC.Id; est.id_Acys = idAcys; est.Sucursal = item["Sucursal"].Cast <int>(); var suc = listaSucursales.Where(x => x.Id_Cd == est.Sucursal).FirstOrDefault(); if (suc == null) { throw new Exception("La Sucursal no existe: " + item["Sucursal"]); } est.NombreSucursal = item["Sucursal"] + " - " + suc.Cd_Nombre; int resId = cm_Estr.Alta(est); est.Id = resId; padre4 = resId; listEstructura.Add(est); } } } model.SaveChanges(); scope.Complete(); } catch (Exception ex) { scope.Dispose(); listEstructura.Clear(); listEstructura = cm_Estr.ConsultarTodos(Int32.Parse(Request.QueryString["Id"])); RAM1.ResponseScripts.Add("CloseAlert('" + ex.Message + "')"); } finally { var nodoA = treeEstructura.Nodes[0]; var hijosPrimerNodo = listEstructura.Where(x => x.Nivel == 1).ToList(); nodoA.Nodes.Clear(); ConstruirEstructura(ref nodoA, hijosPrimerNodo); AgregarControles(ref nodoA, hijosPrimerNodo, null); treeEstructura.ExpandAllNodes(); } } }