/// <summary> /// AÑADE NODOS SELECCIONADOS A LISTA /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void TREE_ARCHIVO_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e) { try { //============================================================================ // CAPTURAMOS EL NODO SELECCIONADO //============================================================================ TreeNode NODO = e.Node; bool seleccionado = NODO.Checked; //============================================================================ // VALIDA SI ESTA SELECCIONADO O NO //============================================================================ if (seleccionado) { int CONTADOR = 0; string ANTERIOR = ""; for (int i = 0; i < NODO.ChildNodes.Count; i++) { //============================================================================ // ITERACION PARA SABER SI EL NODO ESTABA AGREGADO //============================================================================ foreach (string item in V_Global().Archivos) { string[] split = item.Split('\\'); if (split[1].Equals(NODO.ChildNodes[i].Value.ToString())) { ANTERIOR = item; CONTADOR++; TreeNode NODO_ANTERIOR = TREE_ARCHIVO.FindNode(split[0]); NODO_ANTERIOR.Checked = false; } } //============================================================================ // VALIDACION DE NODOS AGREGADOS //============================================================================ if (CONTADOR == 0) { V_Global().Archivos.Add(NODO.Value.ToString() + @"\" + NODO.ChildNodes[i].Value.ToString()); } else { //============================================================================ // SI ESTA AGREGADO ELIMINAMOS EL ANTERIOR Y AGREGAMOS EL NUEVO //============================================================================ V_Global().Archivos.Remove(ANTERIOR); V_Global().Archivos.Add(NODO.Value.ToString() + @"\" + NODO.ChildNodes[i].Value.ToString()); } } } else { //============================================================================ // ITERACION PARA ELIMINACION DE NODOS NO SELECCIONADOS //============================================================================ for (int i = 0; i < NODO.ChildNodes.Count; i++) { V_Global().Archivos.Remove(NODO.Value.ToString() + @"\" + NODO.ChildNodes[i].Value.ToString()); } } //============================================================================ // ACTUALIZA LA LISTA DE NODOS SELECCIONADOS //============================================================================ CARGAR_LISTA_SELECCIONADOS(); } catch (EServiceRestFulException srv) { MensajeLOG(srv.Message, "ERRORES DE SERVICIO"); } catch (System.Exception ex) { MensajeLOG(UThrowError.MensajeThrow(ex), "ERRORES DE APLICACIÓN"); } }
/// <summary> /// GENERA ARBOL DE DIRECTORIOS Y ARCHIVOS /// </summary> /// <param name="RUTA_ROOT"></param> /// <param name="CODIGO_CLUSTER"></param> /// <param name="CODIGO_INTERFAZ"></param> /// <param name="FECHA_INICIO"></param> /// <param name="FECHA_FIN"></param> private void CARGAR_ARBOL(string RUTA_ROOT, string CODIGO_CLUSTER, string CODIGO_INTERFAZ, DateTime FECHA_INICIO, DateTime FECHA_FIN) { try { //============================================================================= // LIMPIAMOS ARBOL //============================================================================= TREE_ARCHIVO.Nodes.Clear(); //============================================================================= // DECLARACION DE VARIABLES //============================================================================= string grupo = ""; int CONTADOR_DIRECTORIO = 0; int CONTADOR = 0; //============================================================================= // CREACION DE RUTA DE DIRECTORIOS //============================================================================= string RUTA = RUTA_ROOT + CODIGO_CLUSTER + @"\" + CODIGO_INTERFAZ; //============================================================================= // VALIDACION DE EXISTENCIA DE DIRECTORIOS //============================================================================= if (!Directory.Exists(RUTA)) { MensajeLOG("NO EXISTEN ARCHIVOS PARA LA INTERFAZ SELECCIONADA", "ERRORES DE APLICACIÓN"); return; } //============================================================================= // OBTENEMOS INFORMACION SOBRE LOS DIRECTORIOS //============================================================================= DirectoryInfo direc = new DirectoryInfo(RUTA); //============================================================================= // RECORREMOS LOS DIRECTORIOS PARA CONTAR LOS QUE PASAN EL FILTRO DE FECHAS //============================================================================= foreach (var fi in direc.GetDirectories().OrderBy(fi => fi.Name)) { DateTime FECHA_DIRECTORIO = Convert.ToDateTime(fi.Name.Substring(0, 10)); if (FECHA_DIRECTORIO >= FECHA_INICIO && FECHA_DIRECTORIO <= FECHA_FIN) { CONTADOR_DIRECTORIO++; } } //============================================================================= // GENERAMOS ARREGLO DE DIRECTORIOS //============================================================================= DirectoryInfo[] DIRECTORIOS = new DirectoryInfo[CONTADOR_DIRECTORIO]; //============================================================================= // LLENAMOS EL ARREGLO CON LOS DIRECTORIOS QUE CUMPLEN EL FILTRO DE FECHAS //============================================================================= foreach (var fi in direc.GetDirectories().OrderBy(fi => fi.Name)) { DateTime FECHA_DIRECTORIO = Convert.ToDateTime(fi.Name.Substring(0, 10)); if (FECHA_DIRECTORIO >= FECHA_INICIO && FECHA_DIRECTORIO <= FECHA_FIN) { DirectoryInfo di = new DirectoryInfo(fi.FullName); DIRECTORIOS[CONTADOR] = di; CONTADOR++; } } //============================================================================= // ITERACION SOBRE DIRECTORIOS QUE CUMPLEN EL FILTRO DE FECHAS //============================================================================= foreach (var fi in DIRECTORIOS.OrderBy(fi => fi.Name)) { if (grupo != fi.Name) { grupo = fi.Name; //============================================================================= // CREAMOS EL NODO PADRE //============================================================================= TreeNode nodoPadre = new TreeNode(grupo, fi.Name); //============================================================================= // MODIFICAMOS ACCION DE SELECCION //============================================================================= nodoPadre.SelectAction = TreeNodeSelectAction.Expand; //============================================================================= // ITERACION SOBRE RUTA DE NODO PADRE PARA SABER SUS ARCHIVOS //============================================================================= DirectoryInfo di = new DirectoryInfo(fi.FullName); foreach (var fa in di.GetFiles().OrderBy(fa => fa.Name)) { //============================================================================= // CREAMOS EL NODO HIJO //============================================================================= TreeNode nodoHijo = new TreeNode(fa.Name, fa.Name); //============================================================================= // MODIFICAMOS ACCION DE SELECCION //============================================================================= nodoHijo.SelectAction = TreeNodeSelectAction.None; nodoPadre.ChildNodes.Add(nodoHijo); } //============================================================================= // AÑADIMOS NODO PADRE AL ARBOL //============================================================================= TREE_ARCHIVO.Nodes.Add(nodoPadre); } } //============================================================================= // EXPANDIMOS TODO EL ARBOL //============================================================================= TREE_ARCHIVO.ExpandAll(); } catch { throw; } }