Пример #1
0
        public void GenerarSalidaWS(HashSet <string> InventarioWS, string[] Archivos, string App, ProcesoDto pdt)
        {
            ProcesoAvanceDto pdtoA  = new ProcesoAvanceDto();
            Proceso          proc   = new Proceso();
            double           total  = Archivos.Count();
            double           avance = 28 / total;

            for (int i = 0; i <= Archivos.Count() - 1; i++)
            {
                //Aquí van a ir los parametros para iniciar
                string           Ruta    = Archivos[i];
                string           Archivo = Path.GetFileName(Ruta);
                int              NoLinea = 0;
                RevisaInterfaces RevInt  = new RevisaInterfaces();

                //Empezar a leer el archivo
                using (StreamReader sr = new StreamReader(Ruta))
                {
                    while (sr.Peek() >= 0)
                    {
                        string lineaCodigo = sr.ReadLine().Trim();

                        //Contar No. Linea
                        ++NoLinea;

                        //if (NoLinea == 106)
                        //    NoLinea = NoLinea;

                        if (!String.IsNullOrEmpty(lineaCodigo))
                        {
                            //Actualizar el nuevo VerificaComentarios
                            lineaCodigo = VerCom.BuscarComentario(lineaCodigo);
                            if (!String.IsNullOrEmpty(lineaCodigo))
                            {
                                RevInt.ObtenerSalidaWS(lineaCodigo, Archivo, InventarioWS, Resultado, NoLinea, Ruta);
                            }
                        }
                    }
                }
                proc.SeteaAvance("En Proceso", "OK", "OK", Math.Round((42 + avance * i), 0).ToString(), "40", "", "Leyendo Archivos", pdtoA, pdt);
                proc.ActualizaProcesoAvance(pdtoA, pdt);
            }

            GuardaProcesoWS(pdtoA, pdt, Resultado);
            //System.IO.File.WriteAllLines(@"C:\INFONAVIT\ClasesMetodos.txt", Resultado);
        }
        public RevisaInterfaces ObtenerSalidaWS(string LineaCodigo, string Archivo, HashSet <string> InventarioWS,
                                                List <string> Resultado, int NoLinea, string Ruta)
        {
            try
            {
                RevisaInterfaces RevisaInterfaces = new RevisaInterfaces();
                string           LineaOriginal    = LineaCodigo;
                LineaCodigo   = LineaCodigo.ToLower();
                LineaCodigo   = LineaCodigo.Replace("\t", " ");
                LineaOriginal = LineaOriginal.Replace("\t", " ");

                string LenguajeApp = Regex.Replace(Archivo, @"\w+\.", string.Empty).Trim();
                Archivo = Regex.Replace(Archivo, @"\.\w+", string.Empty).Trim();

                //Para WebServices dentro de la Aplicación
                Regex RegexWS = new Regex(@"\w+\s*:\s*system.web.services.webservice");
                Match MatchWS = RegexWS.Match(LineaCodigo);
                if (MatchWS.Success)
                {
                    ++DependenciaID;
                    string Servicio = MatchWS.Value.Split(':').First().Trim();
                    Resultado.Add(DependenciaID + "|" + NoLinea + "|" + LineaOriginal.Replace("|", string.Empty) + "|" + Ruta + "|" + LenguajeApp + "|" + "Interno" + "|" + "" + "|" + "Archivo" + "|" + Archivo + "|" + "Web Service" + "|" + Servicio);
                }


                //Para los WebServices que estan fuera de la Aplicación
                if ((LineaCodigo.IndexOf("class ") >= 0) && (LineaCodigo.IndexOf(".class") < 0))
                {
                    bool Excepcion = EsExcepcion(LineaCodigo.ToLower());
                    if (!Excepcion)
                    {
                        ObtenerDatosClase(LineaOriginal);
                    }
                }

                foreach (string Servicio in InventarioWS)
                {
                    string Nombre     = Servicio.Split('|').ElementAt(0);
                    string Direccion  = Servicio.Split('|').ElementAt(1);
                    string Middleware = Servicio.Split('|').ElementAt(3);
                    RegexWS = new Regex(@"" + Nombre);
                    MatchWS = RegexWS.Match(LineaOriginal);
                    if (MatchWS.Success)
                    {
                        string Clase     = "";
                        string Interface = "Interface";
                        if (ListaClases.Count() > 0)
                        {
                            Clase = ListaClases.Last();
                        }
                        else
                        {
                            Clase     = Archivo;
                            Interface = "Página Externa";
                        }
                        ++DependenciaID;
                        Resultado.Add(DependenciaID + "|" + NoLinea + "|" + LineaOriginal.Replace("|", string.Empty) + "|" + Ruta + "|" + LenguajeApp + "|" + Direccion + "|" + Middleware + "|" + Clase + "|" + Archivo + "|" + Interface + "|" + Nombre);
                    }
                }
                return(RevisaInterfaces);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(null);
            }
        }