/// <summary>
        /// Agrega una instancia de proyectos_evaluaciones
        /// </summary>
        /// <param name="entidad"></param>
        /// <returns></returns>
        public int Agregar(proyectos_evaluaciones entidad)
        {
            try
            {
                int id_proyecto_evaluacion_anterior = get_id_proyecto_evaluacion(entidad.id_proyecto);
                proyectos_evaluaciones evaluacion   = new proyectos_evaluaciones
                {
                    id_proyecto      = entidad.id_proyecto,
                    fecha_evaluacion = entidad.fecha_evaluacion,
                    usuario          = entidad.usuario,
                    fecha            = DateTime.Now,
                    riesgo_costo     = 0,
                    riesgo_tiempo    = 0,

                    p_riesgo_costo  = 0,
                    p_riesgo_tiempo = 0
                };
                Proyectos_ConnextEntities context = new Proyectos_ConnextEntities();
                context.proyectos_evaluaciones.Add(evaluacion);
                context.SaveChanges();

                if (id_proyecto_evaluacion_anterior > 0)
                {
                    proyectos_evaluaciones pevaluacion = context.proyectos_evaluaciones
                                                         .First(i => i.id_proyecto_evaluacion == id_proyecto_evaluacion_anterior);
                    List <riesgos> riesgos = pevaluacion.riesgos.ToList();
                    foreach (riesgos riesgo in riesgos)
                    {
                        if (riesgo.id_riesgos_estatus == 1 && riesgo.usuario_borrado == null)
                        {
                            riesgos new_riesgo = new riesgos
                            {
                                id_proyecto_evaluacion = evaluacion.id_proyecto_evaluacion,
                                riesgo             = riesgo.riesgo,
                                usuario            = entidad.usuario,
                                fecha_registro     = DateTime.Now,
                                id_riesgos_estatus = 1,
                                valor                  = riesgo.valor,
                                estrategia             = riesgo.estrategia,
                                id_riesgo_probabilidad = riesgo.id_riesgo_probabilidad,
                                id_riesgo_impacto      = riesgo.id_riesgo_impacto,
                                id_riesgo_estrategia   = riesgo.id_riesgo_estrategia,
                                usuario_resp           = riesgo.usuario_resp
                            };
                            context.riesgos.Add(new_riesgo);
                            context.SaveChanges();
                        }
                    }
                }
                return(evaluacion.id_proyecto_evaluacion);
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);
                var fullErrorMessage = string.Join("; ", errorMessages);
                return(0);
            }
        }
        /// <summary>
        /// Eliminar una instancia de evaluaciones
        /// </summary>
        /// <param name="entidad"></param>
        /// <returns></returns>
        public string Eliminar(proyectos_evaluaciones entidad)
        {
            try
            {
                Proyectos_ConnextEntities context    = new Proyectos_ConnextEntities();
                proyectos_evaluaciones    evaluacion = context.proyectos_evaluaciones
                                                       .First(i => i.id_proyecto_evaluacion == entidad.id_proyecto_evaluacion);
                evaluacion.usuario_borrado     = entidad.usuario_borrado.ToUpper();
                evaluacion.fecha_borrado       = DateTime.Now;
                evaluacion.comentarios_borrado = entidad.comentarios_borrado;
                ICollection <riesgos> riesgos = evaluacion.riesgos;

                //borramos riesgos
                foreach (riesgos riesgo in riesgos)
                {
                    riesgo.usuario_borrado     = entidad.usuario_borrado.ToUpper();
                    riesgo.fecha_borrado       = DateTime.Now;
                    riesgo.comentarios_borrado = entidad.comentarios_borrado;

                    //borramos actividades
                    ICollection <actividades> actividades = riesgo.actividades;
                    foreach (actividades actividad in actividades)
                    {
                        actividad.usuario_borrado     = entidad.usuario_borrado.ToUpper();
                        actividad.fecha_borrado       = DateTime.Now;
                        actividad.comentarios_borrado = entidad.comentarios_borrado;

                        //borramos documentos
                        ICollection <documentos> documentos = actividad.documentos;
                        foreach (documentos documento in documentos)
                        {
                            documento.usuario_borrado     = entidad.usuario_borrado.ToUpper();
                            documento.fecha_borrado       = DateTime.Now;
                            documento.comentarios_borrado = entidad.comentarios_borrado;
                        }
                    }
                }
                context.SaveChanges();
                return("");
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);
                var fullErrorMessage = string.Join("; ", errorMessages);
                return(fullErrorMessage.ToString());
            }
        }