コード例 #1
0
        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);
        }
コード例 #2
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);
            }
        }