private bool validadatos(int UsuarioID, long ProcesoID, string Ruta) { bool respuesta = false; try { if (UsuarioID > 0 && ProcesoID > 0 && Ruta.Length > 0) { if (Directory.Exists(Ruta)) { respuesta = true; } else { ultMensajeError = "El archivo no existe en la ruta especificada."; ErrLog.EscribeLog("WSDependencias.validadatos El archivo no existe en la ruta especificada. " + Ruta); } } else { ultMensajeError = "Los datos de entrada del proceso son incorrectos"; } } catch (Exception Err) { ErrLog.EscribeLogWS("WSDependencias.validadatos " + Err.Message.ToString()); } return(respuesta); }
//ConfigurationManager.AppSettings["pcsv"].ToString() public void GeneraSalida(int CveAplicacion, string Ruta, ProcesoDto pdto) { ControlLog ErrLog = new ControlLog(); Entrada Ent = new Entrada(); AplicacionDto AppDto = new AplicacionDto(); ExcluyeComentarios ExcCom = new ExcluyeComentarios(); Procesos Procesos = new Procesos(); Salida Salida = new Salida(); DataTable configuracionDt; DataRow configuracion; string extensiones = ""; ProcesoAvanceDto pdtoA = new ProcesoAvanceDto(); Proceso proc = new Proceso(); string TipoAnalisis = "BD"; proc.SeteaAvance("En Proceso", "OK", "OK", "1", "--", "", "Iniciando Parseo BD", pdtoA, pdto); proc.ActualizaProcesoAvance(pdtoA, pdto); //Carga los datos de configuracion la ruta ya se trae, no se utiliza la de configuración using (configuracionDt = Consultas(1, CveAplicacion)); { if (configuracionDt == null || configuracionDt.Rows.Count < 1) { ErrLog.EscribeLogWS("No se encontraron los datos de configuración de la aplicación"); configuracion = null; } else { configuracion = configuracionDt.Rows[0]; } } //Determina que extensiones se deben leer deacuerdo al lenguaje DataTable LenguajeApp = ConsultaLenguaje(Convert.ToString(CveAplicacion)); if (LenguajeApp == null || LenguajeApp.Rows.Count < 1) { ErrLog.EscribeLogWS("No se encontraron los datos de lenguaje de la Aplicación"); LenguajeApp = null; } DataRow Lenguaje = LenguajeApp.Rows[0]; //if (Lenguaje["Lenguaje"].ToString() == "ASP") extensiones = configuracion["Extensiones"].ToString(); //else // extensiones = configuracion["ExtensionesJava"].ToString(); String[] extArray = extensiones.ToLower().Split(','); //Validación if (String.IsNullOrEmpty(Convert.ToString(CveAplicacion))) { ErrLog.EscribeLogWS("No asigno la clave de la aplicación a analizar."); return; } //Obtiene todos los archivos de la ruta que deben leerse se cambio la ruta como parametro Ent.ListarArchivos(listaArchivos, Ruta, extArray, Convert.ToString(CveAplicacion)); //Validación if (listaArchivos.Where(l => l.Extension == "java").Count() > 5) { AppDto.Tecnologia = "JAVA"; } else if (listaArchivos.Where(l => l.Extension == "cs").Count() > 5) { AppDto.Tecnologia = "NET"; } else if (listaArchivos.Where(l => l.Extension == "asp").Count() > 5) { AppDto.Tecnologia = "ASP"; } else if (listaArchivos.Where(l => l.Extension == "sql").Count() > 5) { AppDto.Tecnologia = "Oracle"; } else if (listaArchivos.Where(l => l.Extension == "frm").Count() > 5) { AppDto.Tecnologia = "Visual Basic 6"; } AppDto.CveAplicacion = Convert.ToString(CveAplicacion); ////Obtiene lista de marcas de comentarios //Comentarios = Ent.CargarComentarios(configuracion["RutaComentarios"].ToString()); //if (Comentarios == null || !Comentarios.Any()) //{ // ErrLog.EscribeLogWS("El archivo de comentarios esta vacío"); // return; //} //ExcCom.Comentarios = Comentarios; //ErrLog.EscribeLogWS("El archivo de comentarios ha sido cargado."); //Carga las cadenas que no deben considerarse _CadenasAIgnorar = Ent.CargarAIgnorar(); if (_CadenasAIgnorar == null || !_CadenasAIgnorar.Any()) { ErrLog.EscribeLogWS("No se encontraron cadenas a Ignorar"); return; } ErrLog.EscribeLogWS("Cargando cadenas a encontrar..."); //Obtener las lineas que contienen palabras relacionadas con objetos de la BD if (TipoAnalisis == "BD") { _CadenasAEncontrar = Ent.CargarObjetosBD(); if (_CadenasAEncontrar == null) { ErrLog.EscribeLogWS("No hay cadenas a encontrar, verifique el inventario de objetos"); return; } ErrLog.EscribeLogWS("Las cadenas a encontrar han sido cargadas."); if (AppDto.Tecnologia == "NET" || AppDto.Tecnologia == "ASP") { ConexionesBd = Ent.EncontrarConexionesNet(); } if (AppDto.Tecnologia == "JAVA") { ConexionesBd = Ent.EncontrarConexionesJava(); } if (ConexionesBd == null || ConexionesBd.Count < 1) { ErrLog.EscribeLogWS("Dentro de la aplicación no se encontraron conexiones a BD"); } else { ErrLog.EscribeLogWS("Se encontraron en la aplicación conexiones a BD"); ConexionesBd.ForEach(conexion => { _CadenasAEncontrar.Add(new CadenaAEncontrarDto { Grupo = conexion.BaseDatos, NombreObjeto = conexion.Nombre, TipoObjeto = "ConexionBD", TipoBusqueda = 0, TipoObjetoID = 7 }); }); _CadenasAEncontrar = Procesos.ReordenarCadenas(_CadenasAEncontrar, ConexionesBd, AppDto); } } Ent.CargarCadenasDesdeBD(_CadenasAEncontrar, TipoAnalisis, AppDto); Parseador parser = new Parseador() { CadenasAIgnorar = _CadenasAIgnorar, CadenasAEncontrar = _CadenasAEncontrar, RutaAnalisis = Ruta, Comentarios = Comentarios, ConexionesBd = ConexionesBd }; proc.SeteaAvance("En Proceso", "OK", "OK", "2", "--", "", "Guardando Datos", pdtoA, pdto); proc.ActualizaProcesoAvance(pdtoA, pdto); try { listaHallazgos = parser.ProcesarArchivos(listaArchivos, AppDto, pdto); } catch (Exception ex) { ErrLog.EscribeLogWS("Fallo el procesamiento de archivos: " + ex.Message + " " + ex.StackTrace); return; } StringBuilder csvSalida = new StringBuilder(); try { csvSalida.AppendLine("AplicacionID" + separador + "ClaveAplicacion" + separador + "NumLinea" + separador + "Referencia" + separador + "ObjetoBDID" + separador + "Objeto" + separador + "TipoObjetoID" + separador + "TipoObjeto" + separador + "BaseDatosID" + separador + "BaseDatos" + separador + "Archivo" + separador + "Extension" + separador + "BibPadre" + separador + "ObjPadre"); ErrLog.EscribeLogWS("Generando salida ..."); List <string> resultado = new List <string>(); resultado = Salida.GenerarSalida(separador, csvSalida, listaHallazgos); GuardaProcesoBD(pdtoA, pdto, resultado); } catch (Exception ex) { ErrLog.EscribeLogWS("Fallo en GenerarSalida " + ex.Message + " " + ex.StackTrace); return; } string rutaSalida = pathsalida + pdto.ProcesoID + ".csv"; try { //Agregar la carga a la tabla File.WriteAllText(rutaSalida + "", csvSalida.ToString()); ErrLog.EscribeLogWS("Salida CSV '" + rutaSalida + "' generada."); } catch (Exception ex) { ErrLog.EscribeLogWS("El archivo de salida CSV no pudo generarse: " + ex.Message); return; } finally { ErrLog.EscribeLogWS("Proceso terminado"); } }
//Este metodo se encarga de comparar linea por linea del archivo con las cadenas //a encontrar e ignorar public List <ObjetoDto> ProcesarArchivos(List <ArchivoDto> listaArchivos, AplicacionDto AppDto, ProcesoDto pdto) { double total = listaArchivos.Count(); double avance = 38 / total; ProcesoAvanceDto pdtoA = new ProcesoAvanceDto(); Proceso proc = new Proceso(); //if (AppDto.Tecnologia == "NET") // EncontrarWsNet(listaArchivos); //else // EncontrarWsJava(listaArchivos); int numArchivo = 1; Archivos = listaArchivos; foreach (ArchivoDto archivo in listaArchivos) //Parallel.ForEach(listaArchivos, archivo => { ErrLog.EscribeLogWS("Procesando archivo: " + numArchivo + " de " + listaArchivos.Count + " " + archivo.Ruta); VerCom.ComentarioBloque = ""; EncMet.Limpiar(); using (StreamReader sr = new StreamReader(archivo.Ruta)) { NumLinea = 1; while (sr.Peek() >= 0) { string lineaCodigo = sr.ReadLine().Trim(); if (!String.IsNullOrEmpty(lineaCodigo)) { //lineaCodigo = ExcCom.BuscarComentario(lineaCodigo, archivo.Extension); lineaCodigo = VerCom.BuscarComentario(lineaCodigo); if (archivo.Extension == "cs" || archivo.Extension == "java") { ClaseMetodo = EncMet.EncuentraNombre(lineaCodigo); } else { ClaseMetodo = ""; } if (!Excluir(lineaCodigo) && !string.IsNullOrEmpty(lineaCodigo)) { ArchivoActual = archivo; if (archivo.Extension == "aspx") { if (lineaCodigo.ToLower().IndexOf("command") >= 0) { EncontrarCadena(lineaCodigo); } } else { EncontrarCadena(lineaCodigo); } } } NumLinea++; } } numArchivo++; proc.SeteaAvance("En Proceso", "OK", "OK", Math.Round(2 + (avance * numArchivo), 0).ToString(), "--", "", "Leyendo Archivos", pdtoA, pdto); proc.ActualizaProcesoAvance(pdtoA, pdto); } return(Objetos); }
public List <CadenaAEncontrarDto> CargarObjetosBD() { List <CadenaAEncontrarDto> listado = new List <CadenaAEncontrarDto>(); try { using (DataTable tabla = Consultas(3, 0)) { if (tabla == null || tabla.Rows.Count < 1) { ErrLog.EscribeLogWS("No se encontraron Objetos en el inventario... "); } else { foreach (DataRow fila in tabla.Rows) { listado.Add(new CadenaAEncontrarDto() { GrupoID = int.Parse(fila["BaseDatosID"].ToString()), Grupo = fila["BaseDatos"].ToString(), TipoObjetoID = int.Parse(fila["TipoObjetoID"].ToString()), TipoObjeto = fila["TipoObjeto"].ToString(), ObjetoID = int.Parse(fila["ObjetoBDID"].ToString()), NombreObjeto = fila["Objeto"].ToString(), TipoBusqueda = 0, NombreObjetoBD = fila["NombreObjeto"].ToString() }); } } } ErrLog.EscribeLogWS("Cargando Inventario de objetos ..."); return(listado); } catch (Exception ex) { ErrLog.EscribeLogWS("No se pudieron cargar los Objetos BD del inventario " + ex.Message); return(null); } }