private void CargarSubProgramasYActividadesDeProgramaGeneralEnLista(Decimal ID_PROGRAMA_GENERAL, Decimal ID_DETALLE_GENERAL_PADRE, Dictionary<String, infoNodoProgramaGeneral> diccionario, String numeracion) { int contador = 1; Programa _programa = new Programa(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaDetallesProgramaGeneral = _programa.ObtenerDetallesProgramaGeneralPorIdPadre(ID_PROGRAMA_GENERAL, ID_DETALLE_GENERAL_PADRE); //recorremos agregando los subprogramas al nodo padre foreach (DataRow fila in tablaDetallesProgramaGeneral.Rows) { if (fila["TIPO"].ToString().Trim() == TiposNodoProgramaGeneral.SUBPROGRAMA.ToString()) { infoNodoProgramaGeneral nodo = new infoNodoProgramaGeneral(); nodo.TIPO_NODO = TiposNodoProgramaGeneral.SUBPROGRAMA; nodo.SUB_DESCRIPCION = fila["DESCRIPCION_SUB_PROGRAMA"].ToString().Trim(); nodo.SUB_NOMBRE = fila["NOMBRE_SUB_PROGRAMA"].ToString().Trim(); Decimal ID_DETALLE_GENERAL = Convert.ToDecimal(fila["ID_DETALLE_GENERAL"]); if (numeracion == null) { diccionario.Add(contador.ToString() + ":" + TiposNodoProgramaGeneral.SUBPROGRAMA.ToString(), nodo); CargarSubProgramasYActividadesDeProgramaGeneralEnLista(ID_PROGRAMA_GENERAL, ID_DETALLE_GENERAL, diccionario, contador.ToString()); } else { diccionario.Add(numeracion + "." + contador.ToString() + ":" + TiposNodoProgramaGeneral.SUBPROGRAMA.ToString(), nodo); CargarSubProgramasYActividadesDeProgramaGeneralEnLista(ID_PROGRAMA_GENERAL, ID_DETALLE_GENERAL, diccionario, numeracion + "." + contador.ToString()); } } contador += 1; } //RECORREMOS AGREGANDO AHORA LAS ACTIVIDADES contador = 1; foreach (DataRow fila in tablaDetallesProgramaGeneral.Rows) { if (fila["TIPO"].ToString().Trim() == TiposNodoProgramaGeneral.ACTIVIDAD.ToString()) { infoNodoProgramaGeneral nodo = new infoNodoProgramaGeneral(); nodo.TIPO_NODO = TiposNodoProgramaGeneral.ACTIVIDAD; nodo.ACT_DESCRIPCION = fila["DESCRIPCION_ACTIVIDAD"].ToString().Trim(); nodo.ACT_NOMBRE = fila["NOMBRE_ACTIVIDAD"].ToString().Trim(); nodo.ACT_SECTOR = fila["SECTOR_ACTIVIDAD"].ToString().Trim(); nodo.ACT_TIPO = fila["TIPO_ACTIVIDAD"].ToString().Trim(); if (numeracion == null) { diccionario.Add(contador.ToString() + ":" + TiposNodoProgramaGeneral.ACTIVIDAD.ToString(), nodo); } else { diccionario.Add(numeracion + "." + contador.ToString() + ":" + TiposNodoProgramaGeneral.ACTIVIDAD.ToString(), nodo); } } contador += 1; } }
private void CargarSubProgramasYActividades(Int32 index, Decimal ID_DETALLE_GENERAL_PADRE, DataTable tablaPrograma, String numeracion) { Int32 contadorNumeracionInterna = 1; Decimal ID_PROGRAMA_GENERAL = Convert.ToDecimal(HiddenField_ID_PROGRAMA_GENERAL.Value); Programa _programa = new Programa(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaDetallesProgramaGeneral = _programa.ObtenerDetallesProgramaGeneralPorIdPadre(ID_PROGRAMA_GENERAL, ID_DETALLE_GENERAL_PADRE); foreach (DataRow fila in tablaDetallesProgramaGeneral.Rows) { if (fila["TIPO"].ToString().Trim() == TiposNodo.SUBPROGRAMA.ToString()) { DataRow filaSubprogramaActividad = tablaPrograma.NewRow(); filaSubprogramaActividad["INDEX"] = index; index += 1; filaSubprogramaActividad["ID_DETALLE_GENERAL"] = fila["ID_DETALLE_GENERAL"]; filaSubprogramaActividad["ID_PROGRAMA_GENERAL"] = ID_PROGRAMA_GENERAL; filaSubprogramaActividad["TIPO"] = fila["TIPO"]; filaSubprogramaActividad["ID_DETALLE_GENERAL_PADRE"] = fila["ID_DETALLE_GENERAL_PADRE"]; if (DBNull.Value.Equals(fila["ID_SUBPROGRAMA"]) == true) { filaSubprogramaActividad["ID_SUBPROGRAMA"] = 0; } else { filaSubprogramaActividad["ID_SUBPROGRAMA"] = fila["ID_SUBPROGRAMA"]; } if (DBNull.Value.Equals(fila["ID_ACTIVIDAD"]) == true) { filaSubprogramaActividad["ID_ACTIVIDAD"] = 0; } else { filaSubprogramaActividad["ID_ACTIVIDAD"] = fila["ID_ACTIVIDAD"]; } filaSubprogramaActividad["DESCRIPCION"] = fila["DESCRIPCION_SUB_PROGRAMA"].ToString().Trim() + "."; filaSubprogramaActividad["URL_ICON"] = urlImgPrograma; filaSubprogramaActividad["NOMBRE"] = fila["NOMBRE_SUB_PROGRAMA"]; filaSubprogramaActividad["NUMERACION"] = numeracion + contadorNumeracionInterna + "."; tablaPrograma.Rows.Add(filaSubprogramaActividad); CargarSubProgramasYActividades(index, Convert.ToDecimal(fila["ID_DETALLE_GENERAL"]), tablaPrograma, numeracion + contadorNumeracionInterna + "."); contadorNumeracionInterna += 1; } } foreach (DataRow fila in tablaDetallesProgramaGeneral.Rows) { if (fila["TIPO"].ToString().Trim() == TiposNodo.ACTIVIDAD.ToString()) { DataRow filaSubprogramaActividad = tablaPrograma.NewRow(); filaSubprogramaActividad["INDEX"] = index; index += 1; filaSubprogramaActividad["ID_DETALLE_GENERAL"] = fila["ID_DETALLE_GENERAL"]; filaSubprogramaActividad["ID_PROGRAMA_GENERAL"] = ID_PROGRAMA_GENERAL; filaSubprogramaActividad["TIPO"] = fila["TIPO"]; filaSubprogramaActividad["ID_DETALLE_GENERAL_PADRE"] = fila["ID_DETALLE_GENERAL_PADRE"]; if (DBNull.Value.Equals(fila["ID_SUBPROGRAMA"]) == true) { filaSubprogramaActividad["ID_SUBPROGRAMA"] = 0; } else { filaSubprogramaActividad["ID_SUBPROGRAMA"] = fila["ID_SUBPROGRAMA"]; } if (DBNull.Value.Equals(fila["ID_ACTIVIDAD"]) == true) { filaSubprogramaActividad["ID_ACTIVIDAD"] = 0; } else { filaSubprogramaActividad["ID_ACTIVIDAD"] = fila["ID_ACTIVIDAD"]; } filaSubprogramaActividad["DESCRIPCION"] = fila["TIPO_ACTIVIDAD"].ToString().Trim() + ": " + fila["DESCRIPCION_ACTIVIDAD"].ToString().Trim() + ".<BR>SECTOR: " + fila["SECTOR_ACTIVIDAD"].ToString().Trim() + "."; filaSubprogramaActividad["URL_ICON"] = urlImgActividad; filaSubprogramaActividad["NOMBRE"] = fila["NOMBRE_ACTIVIDAD"]; filaSubprogramaActividad["NUMERACION"] = numeracion + contadorNumeracionInterna + "."; contadorNumeracionInterna += 1; tablaPrograma.Rows.Add(filaSubprogramaActividad); } } }