예제 #1
0
        public Paquete Analice(string ruta)
        {
            Paquete        elPaquete    = null;
            List <Project> losProyectos = null;

            try
            {
                Solution laSolucion = ConstruyaLaSolucion(ruta);
                elPaquete = new Paquete();
                Paquetes.Constructor elConstructorDePaquetes = new Paquetes.Constructor();
                elPaquete = elConstructorDePaquetes.Construya(laSolucion);

                losProyectos = new List <Project>();
                Consultante elConsultante = new Consultante();
                losProyectos = elConsultante.Consulte(laSolucion);
            }
            catch (Exception laExcepcion)
            {
                Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                elRegistrador.Registre(laExcepcion, "", Componentes.AnalizadorCodigoFuente);
            }


            List <Proyecto> losProyectosConvertidos = new List <Proyecto>();

            foreach (Project proyectoCompilado in losProyectos)
            {
                try
                {
                    Proyecto    proyecto      = new Proyecto();
                    Constructor elConstructor = new Constructor();
                    proyecto = elConstructor.Construya(proyectoCompilado);

                    var resultadoCompilacion = proyectoCompilado.GetCompilationAsync().Result;
                    proyecto.Clases = ConstruyaLaClase(resultadoCompilacion.SyntaxTrees.ToList(), elPaquete.IdSolucion).ToArray();

                    losProyectosConvertidos.Add(proyecto);
                }
                catch (Exception laExcepcion)
                {
                    Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                    elRegistrador.Registre(laExcepcion, elPaquete.IdSolucion, Componentes.AnalizadorCodigoFuente);
                }
            }

            elPaquete.Proyectos = losProyectosConvertidos.ToArray();

            return(elPaquete);
        }