private R2PBPaquete ConstruyaElPaquete(Paquete elPaquete) { R2PBPaquete elPaqueteConvertido = new R2PBPaquete(); elPaqueteConvertido.IdentificadorPaquete = elPaquete.IdSolucion; elPaqueteConvertido.NombrePaquete = elPaquete.NombrePaquete; return(elPaqueteConvertido); }
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); } }