public List <Propiedad> Construya(SyntaxList <MemberDeclarationSyntax> losNodos, string elIDSolucion)
        {
            List <FieldDeclarationSyntax> lasPropiedadesDeclaradas = new List <FieldDeclarationSyntax>();
            Convertidor elConvertidor = new Convertidor(elIDSolucion);

            lasPropiedadesDeclaradas = elConvertidor.Convierta(losNodos);

            List <Propiedad> lasPropiedadesConvertidas = new List <Propiedad>();

            foreach (FieldDeclarationSyntax laPropiedad in lasPropiedadesDeclaradas)
            {
                try {
                    Propiedad propiedadConvertida = new Propiedad();
                    propiedadConvertida.Visibilidad = laPropiedad.Modifiers.Count != 0 ? laPropiedad.Modifiers.First().ToString() : "";
                    propiedadConvertida.Nombre      = laPropiedad.Declaration.Variables.Count != 0 ? laPropiedad.Declaration.Variables.FirstOrDefault().ToString() : "";
                    propiedadConvertida.Tipo        = laPropiedad.Declaration.Type.ToFullString();
                    propiedadConvertida.EsEstatica  = VerifiqueSiEsStatic(laPropiedad);
                    lasPropiedadesConvertidas.Add(propiedadConvertida);
                } catch (Exception laExcepcion) {
                    Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                    elRegistrador.Registre(laExcepcion, elIDSolucion, Componentes.AnalizadorCodigoFuente);
                }
            }

            return(lasPropiedadesConvertidas);
        }
Example #2
0
        public List <Metodo> Construya(SyntaxList <MemberDeclarationSyntax> losNodos, string elIdSolucion)
        {
            List <MethodDeclarationSyntax> losMetodosDeclarados = new List <MethodDeclarationSyntax>();
            List <Metodo> losMetodosConvertidos = new List <Metodo>();

            if (losNodos != null && losNodos.Count != 0)
            {
                Convertidor elConvertidor = new Convertidor();
                losMetodosDeclarados = elConvertidor.Convierta(losNodos, elIdSolucion);
                foreach (MethodDeclarationSyntax elMetodo in losMetodosDeclarados)
                {
                    try
                    {
                        Metodo elMetodoConvertido = new Metodo();
                        elMetodoConvertido.NombreMetodo = elMetodo.Identifier.Text;
                        elMetodoConvertido.Retorno      = elMetodo.ReturnType.ToString();

                        FileLinePositionSpan lineSpan = elMetodo.SyntaxTree.GetLineSpan(elMetodo.Span);
                        elMetodoConvertido.LineaComienzo = lineSpan.StartLinePosition.Line;
                        elMetodoConvertido.LineaFinal    = lineSpan.EndLinePosition.Line;

                        string elModificador;
                        if (elMetodo.Modifiers.Count == 0)
                        {
                            elModificador = "";
                        }
                        else
                        {
                            elModificador = elMetodo.Modifiers.First().ToString();
                        }

                        elMetodoConvertido.Visibilidad = elModificador;
                        Parametros.Constructor elConstructorDeParametros = new Parametros.Constructor();
                        elMetodoConvertido.Parametros = elConstructorDeParametros.Construya(elMetodo.ParameterList.Parameters, elIdSolucion).ToArray();

                        Controles.Constructor elConstructorDeControles = new Controles.Constructor();
                        if (elMetodo.Body != null)
                        {
                            elMetodoConvertido.Controles = elConstructorDeControles.Construya(elMetodo.Body.Statements, elIdSolucion).ToArray();
                        }
                        else
                        {
                            elMetodoConvertido.Controles = new List <Control>().ToArray();
                        }

                        losMetodosConvertidos.Add(elMetodoConvertido);
                    }
                    catch (Exception laExcepcion)
                    {
                        Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                        elRegistrador.Registre(laExcepcion, elIdSolucion, BC.Componentes.AnalizadorCodigoFuente);
                    }
                }
            }


            return(losMetodosConvertidos);
        }
Example #3
0
 public override void VisitUsingDirective(UsingDirectiveSyntax elNodo)
 {
     try {
         Using nuevoUsing = new Using();
         nuevoUsing.UsingDeclarado = elNodo.Name.ToFullString();
         UsingsConstruidos.Add(nuevoUsing);
     } catch (Exception laExcepcion) {
         Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
         elRegistrador.Registre(laExcepcion, IdSolucion, BC.Componentes.AnalizadorCodigoFuente);
     }
 }
Example #4
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);
        }
Example #5
0
        public override SyntaxNode VisitNamespaceDeclaration(NamespaceDeclarationSyntax elNodo)
        {
            try
            {
                elNodo = (NamespaceDeclarationSyntax)base.VisitNamespaceDeclaration(elNodo);
                elNodo.Name.ToString();
            }
            catch (Exception laExcepcion)
            {
                Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                elRegistrador.Registre(laExcepcion, elIdDeLaSolucion, BC.Componentes.AnalizadorCodigoFuente);
            }

            return(elNodo);
        }
Example #6
0
        public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax elNodo)
        {
            try
            {
                elNodo = (ClassDeclarationSyntax)base.VisitClassDeclaration(elNodo);

                Clase clase = new Clase();
                clase.Nombre = elNodo.Identifier.ValueText;

                if (elNodo.Parent.Kind() == SyntaxKind.NamespaceDeclaration)
                {
                    NamespaceDeclarationSyntax elNameSpace = (NamespaceDeclarationSyntax)elNodo.Parent;
                    clase.NameSpace = elNameSpace.Name.ToString();
                }
                else
                {
                    clase.NameSpace = null;
                }

                clase.Visibilidad = elNodo.Modifiers.Count != 0 ? elNodo.Modifiers.First().ToString() : "";
                clase.Tipo        = Tipo.Clase;
                FileLinePositionSpan lineSpan = elNodo.SyntaxTree.GetLineSpan(elNodo.Span);
                clase.LineaComienzo = lineSpan.StartLinePosition.Line;
                clase.LineaFinal    = lineSpan.EndLinePosition.Line;

                Usings.Constructor elConstructorDeUsings = new Usings.Constructor(IdSolucion);
                elConstructorDeUsings.Visit(elNodo.SyntaxTree.GetRoot());
                clase.Usings = elConstructorDeUsings.UsingsConstruidos.ToArray();

                Herencias.Constructor elConstructorDeHerencia = new Herencias.Constructor();
                clase.Herencias = elConstructorDeHerencia.Construya(elNodo.BaseList, IdSolucion).ToArray();

                Metodos.Constructor eConstructorDeMetodos = new Metodos.Constructor();
                clase.Metodos = eConstructorDeMetodos.Construya(elNodo.Members, IdSolucion).ToArray();

                Propiedades.Constructor elConstructorDePropiedades = new Propiedades.Constructor();
                clase.Propiedades = elConstructorDePropiedades.Construya(elNodo.Members, IdSolucion).ToArray();
                lasClases.Add(clase);
            } catch (Exception laExcepcion) {
                Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                elRegistrador.Registre(laExcepcion, IdSolucion, BC.Componentes.AnalizadorCodigoFuente);
            }

            return((SyntaxNode)elNodo);
        }
Example #7
0
        public List <FieldDeclarationSyntax> Convierta(SyntaxList <MemberDeclarationSyntax> losNodos)
        {
            List <FieldDeclarationSyntax> lasPropiedades = new List <FieldDeclarationSyntax>();

            foreach (MemberDeclarationSyntax elNodo in losNodos)
            {
                try {
                    if (elNodo.Kind() == SyntaxKind.FieldDeclaration)
                    {
                        FieldDeclarationSyntax laPropiedadCasteada = (FieldDeclarationSyntax)elNodo;
                        lasPropiedades.Add(laPropiedadCasteada);
                    }
                } catch (Exception laExcepcion) {
                    Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                    elRegistrador.Registre(laExcepcion, IdSolucion, BC.Componentes.AnalizadorCodigoFuente);
                }
            }
            return(lasPropiedades);
        }
        public List <MethodDeclarationSyntax> Convierta(SyntaxList <MemberDeclarationSyntax> losNodos, string elIdSolucion)
        {
            List <MethodDeclarationSyntax> losMetodosConvertidos = new List <MethodDeclarationSyntax>();

            foreach (MemberDeclarationSyntax elNodo in losNodos)
            {
                try {
                    if (elNodo.Kind() == SyntaxKind.MethodDeclaration)
                    {
                        MethodDeclarationSyntax laDeclaracionMetodo = (MethodDeclarationSyntax)elNodo;
                        losMetodosConvertidos.Add(laDeclaracionMetodo);
                    }
                } catch (Exception laExcepcion) {
                    Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                    elRegistrador.Registre(laExcepcion, elIdSolucion, BC.Componentes.AnalizadorCodigoFuente);
                }
            }
            return(losMetodosConvertidos);
        }
        public List <Control> Construya(SyntaxList <StatementSyntax> losControles, string elIdSolucion)
        {
            List <Control> losControlesConstruidos = new List <Control>();

            if (losControles != null && losControles.Count != 0)
            {
                foreach (StatementSyntax elControl in losControles)
                {
                    try
                    {
                        Tipo tipo = ObtengaElTipoDeControl(elControl);
                        if (tipo != Tipo.Ninguno)
                        {
                            Control controlConvertido     = new Control();
                            FileLinePositionSpan lineSpan = elControl.SyntaxTree.GetLineSpan(elControl.Span);
                            controlConvertido.LineaComienzo  = lineSpan.StartLinePosition.Line;
                            controlConvertido.LineaFinal     = lineSpan.EndLinePosition.Line;
                            controlConvertido.TipoControl    = tipo;
                            controlConvertido.NombreSintaxis = elControl.Kind().ToString();

                            if (tipo == Tipo.If)
                            {
                                IfStatementSyntax elControlIf = (IfStatementSyntax)elControl;
                                if (elControlIf.Else != null)
                                {
                                    controlConvertido.OtroControl = ConstruyaElElse(elControlIf);
                                }
                            }
                            losControlesConstruidos.Add(controlConvertido);
                        }
                    }
                    catch (Exception laExcepcion)
                    {
                        Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                        elRegistrador.Registre(laExcepcion, elIdSolucion, BC.Componentes.AnalizadorCodigoFuente);
                    }
                }
            }

            return(losControlesConstruidos);
        }
        public List <Parametro> Construya(SeparatedSyntaxList <ParameterSyntax> losParametros, string elIdSolucion)
        {
            List <Parametro> losParametrosConstruidos = new List <Parametro>();

            foreach (ParameterSyntax elParametro in losParametros)
            {
                try {
                    Parametro elParametroConverido = new Parametro();
                    elParametroConverido.Nombre                = elParametro.Identifier.ToFullString();
                    elParametroConverido.Tipo                  = elParametro.Type.ToFullString();
                    elParametroConverido.EsStatico             = VerifiqueSiEsStatic(elParametro);
                    elParametroConverido.TieneMasModificadores = ObtengaLosModificadores(elParametro).ToArray();

                    losParametrosConstruidos.Add(elParametroConverido);
                } catch (Exception laExcepcion)
                {
                    Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                    elRegistrador.Registre(laExcepcion, elIdSolucion, BC.Componentes.AnalizadorCodigoFuente);
                }
            }
            return(losParametrosConstruidos);
        }
        public int Almacene(string laRuta)
        {
            Paquete    elPaquete    = new Paquete();
            Analizador elAnalizador = new Analizador();

            elPaquete = elAnalizador.Analice(laRuta);
            SolucionesCodigoFuenteClient cliente = new SolucionesCodigoFuenteClient();

            try
            {
                return(cliente.GuardeElPaquete(elPaquete));
            }
            catch (Exception laExcepcion)
            {
                Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                elRegistrador.Registre(laExcepcion, elPaquete.IdSolucion, Componentes.WebService);
            }
            finally
            {
                cliente.Close();
            }
            return(0);
        }
        public int Registre(Paquete elPaquete)
        {
            using (var contexto = new AnalisisCodigoEntities())
            {
                R2PBPaquete elPaqueteRegistrado = contexto.R2PBPaquete.Add(ConstruyaElPaquete(elPaquete));
                contexto.SaveChanges();

                foreach (Proyecto elProyecto in elPaquete.Proyectos)
                {
                    try
                    {
                        R2PBProyecto elProyectoRegistrado = contexto.R2PBProyecto.Add(ConstruyaElProyecto(elProyecto, elPaqueteRegistrado.IdPaquete));
                        contexto.SaveChanges();

                        foreach (Clase laClase in elProyecto.Clases)
                        {
                            R2PBClase laClaseRegistrada = contexto.R2PBClase.Add(ConstruyaLaClase(laClase, elProyectoRegistrado.IdProyecto, elPaqueteRegistrado.IdPaquete));
                            contexto.SaveChanges();

                            foreach (Metodo elMetodo in laClase.Metodos)
                            {
                                R2PBMetodo elMetodoRegistrado = contexto.R2PBMetodo.Add(ConstruyaElMetodo(elMetodo, laClaseRegistrada.IdClase, elPaqueteRegistrado.IdPaquete, elProyectoRegistrado.IdProyecto));
                                contexto.SaveChanges();

                                foreach (Parametro elParametro in elMetodo.Parametros)
                                {
                                    R2PBParametro elParametroRegistrado = contexto.R2PBParametro.Add(ConstruyaElParametro(elParametro, elMetodoRegistrado.IdMetodo, elPaqueteRegistrado.IdPaquete, elProyectoRegistrado.IdProyecto));
                                    contexto.SaveChanges();
                                    if (elParametro.TieneMasModificadores.Count > 0)
                                    {
                                        foreach (string elModificador in elParametro.TieneMasModificadores)
                                        {
                                            contexto.R2PBParametroModificador.Add(ConstruyaElModificador(elModificador, elParametroRegistrado.IdParametro));
                                        }
                                        contexto.SaveChanges();
                                    }
                                }

                                foreach (Control elControl in elMetodo.Controles)
                                {
                                    contexto.R2PBControl.Add(ConstruyaElControl(elControl, elMetodoRegistrado.IdMetodo, elPaqueteRegistrado.IdPaquete, elProyectoRegistrado.IdProyecto, laClaseRegistrada.IdClase));
                                    if (elControl.OtroControl != null)
                                    {
                                        contexto.R2PBControl.Add(ConstruyaElControl(elControl.OtroControl, elMetodoRegistrado.IdMetodo, elPaqueteRegistrado.IdPaquete, elProyectoRegistrado.IdProyecto, laClaseRegistrada.IdClase));
                                    }
                                }
                                contexto.SaveChanges();
                            }

                            foreach (Using elUsing in laClase.Usings)
                            {
                                contexto.R2PBUsing.Add(ConstruyaElUsing(elUsing, laClaseRegistrada.IdClase, elProyectoRegistrado.IdProyecto, elPaqueteRegistrado.IdPaquete));
                            }

                            foreach (Herencia laHerencia in laClase.Herencias)
                            {
                                contexto.R2PBHerencia.Add(ConstruyaLaHerencia(laHerencia, laClaseRegistrada.IdClase, elProyectoRegistrado.IdProyecto, elPaqueteRegistrado.IdPaquete));
                            }

                            foreach (Propiedad laPropiedad in laClase.Propiedades)
                            {
                                contexto.R2PBPropiedad.Add(ConstruyaLaPropiedad(laPropiedad, laClaseRegistrada.IdClase, elProyectoRegistrado.IdProyecto, elProyectoRegistrado.IdPaquete));
                            }

                            contexto.SaveChanges();
                        }
                    }
                    catch (DbEntityValidationException ex)
                    {
                        var mensajesError    = ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage);
                        var todoslosMensajes = string.Join("; ", mensajesError);

                        Bitacoras.Registrador elRegistrador = new Bitacoras.Registrador();
                        elRegistrador.Registre(new SI.Datos.Bitacoras.Bitacora {
                            IdSolucion = elPaqueteRegistrado.IdentificadorPaquete,
                            StackTrace = ex.StackTrace,
                            Tipo       = BC.Componentes.AnalizadorCodigoFuente,
                            Mensaje    = ex.Message,
                            MasInformacionExcepcion = todoslosMensajes,
                        });
                    }
                }
                return(elPaqueteRegistrado.IdPaquete);
            }
        }