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); }
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); }
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); } }
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); }
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); }
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); }
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); } }