private R2PBClase ConstruyaLaClase(Clase laClase, int elIdProyecto, int elIdPaquete) { R2PBClase laClaseConvertida = new R2PBClase(); laClaseConvertida.IdProyecto = elIdProyecto; laClaseConvertida.NameSpace = laClase.NameSpace; laClaseConvertida.Nombre = laClase.Nombre; laClaseConvertida.Tipo = (short)laClase.Tipo; laClaseConvertida.Visibilidad = laClase.Visibilidad; laClaseConvertida.IdPaquete = elIdPaquete; laClaseConvertida.LineaComienzo = laClase.LineaComienzo; laClaseConvertida.LineaFinal = laClase.LineaFinal; return(laClaseConvertida); }
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); } }