public void EncontrarWsJava(List <ArchivoDto> listaArchivos) { ErrLog.EscribeLogWS("Buscando WebServices..."); foreach (ArchivoDto archivo in listaArchivos.Where(a => a.Extension == "java")) { using (StreamReader sr = new StreamReader(archivo.Ruta)) { ArchivoActual = archivo; while (sr.Peek() >= 0) { string lineaCodigo = sr.ReadLine().Trim(); //lineaCodigo = ExcCom.BuscarComentario(lineaCodigo, archivo.Extension); lineaCodigo = VerCom.BuscarComentario(lineaCodigo); if (!String.IsNullOrEmpty(lineaCodigo)) { EncontrarCadena(lineaCodigo); } } } } if (Objetos != null) { foreach (ObjetoDto obj in Objetos) { string nombre = ""; if (obj.Tipo == "OUT" || obj.Tipo == "IN") { Match match = Regex.Match(obj.Referencia, @"name\s*=\s*\w+"); if (match.Success) { nombre = match.Value.Replace("name", string.Empty).Replace("=", string.Empty).Replace("\"", string.Empty).Trim(); CadenasAEncontrar.Add(new CadenaAEncontrarDto { Grupo = "WebService", NombreObjeto = nombre, TipoObjeto = "OUT", TipoBusqueda = TipoBusqueda.PalabraCompleta }); } } } } Objetos.Clear(); }
public void EncontrarCadena(string lineaCodigo) { //foreach (CadenaAEncontrar stringToFind in CadenasAEncontrar) List <CadenaAEncontrarDto> cadenas = new List <CadenaAEncontrarDto>(); cadenas.AddRange(CadenasAEncontrar); if (ArchivoActual.Extension == "config") { cadenas.Clear(); cadenas.AddRange(CadenasAEncontrar.Where(c => c.TipoObjeto == "ConexionBD")); } if (ArchivoActual.Nombre == "ConsultaEstadosSTN.asmx") { ErrLog.EscribeLogWS("buscando cadenas"); } //Parallel.ForEach(cadenas, stringToFind => foreach (CadenaAEncontrarDto stringToFind in CadenasAEncontrar) { string lowerLinea = lineaCodigo.ToLower(); string lowerString = stringToFind.NombreObjeto.ToLower(); if (stringToFind.TipoBusqueda == TipoBusqueda.ExpresionRegular) { Match m = Regex.Match(lowerLinea, lowerString); if (m.Success) { LlenarObjetos(lineaCodigo, stringToFind); } } else { //Este if es indispensable para aumentar la velocidad del analisis if (lowerLinea.IndexOf(lowerString) >= 0) { Regex regex = new Regex(@"([^/\\\w<>{}-]|^)" + lowerString + @"([^/\\\w<>{}-]|$)"); switch (stringToFind.TipoBusqueda) { case TipoBusqueda.PalabraCompleta: Match match = regex.Match(lowerLinea); if (match.Success) { if (stringToFind.TipoObjeto == "ConexionBD") { //verificamos que no sea un from porque hay nombres de tablas iguales alos de la base de datos if (lineaCodigo.IndexOf("from") < 0) { ArchivoActual.ConexionBd = new ConexionBDDto { BaseDatos = stringToFind.Grupo, Nombre = stringToFind.NombreObjeto }; } } LlenarObjetos(lineaCodigo, stringToFind); } break; case TipoBusqueda.Generica: if (lowerLinea.Contains(lowerString)) { LlenarObjetos(lineaCodigo, stringToFind); } break; } } } } }