public bool EditarHijos(AgregarHijosEstudianteAsignatura hijos)
        {
            try
            {
                var asignaturasEstudiantes = new estudianteAsignatura {
                    idEstudianteAsignatura = hijos.idEstudianteAsignatura
                };

                using (var context = new ControlAlumnosEntities())

                {
                    context.estudianteAsignatura.Attach(asignaturasEstudiantes);

                    asignaturasEstudiantes.idEstudianteAsignatura = hijos.idEstudianteAsignatura;
                    asignaturasEstudiantes.id_asignatura          = hijos.id_asignatura;
                    asignaturasEstudiantes.id_docente             = hijos.id_docente;
                    asignaturasEstudiantes.id_estudiante          = hijos.id_estudiante;
                    asignaturasEstudiantes.id_grupo   = hijos.id_grupo;
                    asignaturasEstudiantes.id_periodo = hijos.id_periodo;
                    asignaturasEstudiantes.id_grupo   = hijos.id_grupo;
                    asignaturasEstudiantes.horario    = hijos.horario;

                    context.Configuration.ValidateOnSaveEnabled = false;

                    context.SaveChanges();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);

                throw;
            }
        }
        public ActionResult EliminarAsignacion(AgregarHijosEstudianteAsignatura hijos)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (dl.EliminarHijos(hijos))
                    {
                        //Mandar msj de confirmación de guardado
                        Success("Registro eliminado!", true);
                        return(RedirectToAction("Index"));
                    }

                    else
                    {
                        // return View(catalogos);
                    }
                }
                // TODO: Add insert logic here
                Danger("Error al eliminar registro", true);
                return(View(hijos));
            }
            catch (Exception ex)
            {
                string msj = ex.ToString();
                Danger("Error al eliminar registro: " + ex.ToString(), true);
                return(View(hijos));
            }
        }
        //Metodos de vistas adicionales de tabala interna
        public ActionResult AsignarClase()
        {
            AgregarHijosEstudianteAsignatura hijos = new AgregarHijosEstudianteAsignatura();

            hijos.Asignatura    = dl.lstAsignaturas();
            hijos.Docente       = dl.lstDocente();
            hijos.Grupo         = dl.lstGrupos();
            hijos.id_estudiante = Convert.ToInt32(Session["idestudiante"]);
            hijos.id_periodo    = Convert.ToInt32(Session["idPeriodo"]);
            return(View(hijos));
        }
        public bool GuardarAsignacionClase(AgregarHijosEstudianteAsignatura asig)
        {
            try
            {
                Int64 CantAsig = 0;
                var   con      = new ControlAlumnosEntities();
                CantAsig = con.estudianteAsignatura.Where(x => x.id_asignatura == asig.id_asignatura && x.id_estudiante == asig.id_estudiante && x.activo == true).Select(x => x.idEstudianteAsignatura).FirstOrDefault();
                if (CantAsig == 0)
                {
                    using (var contexto = new ControlAlumnosEntities())
                    {
                        estudianteAsignatura ae = new estudianteAsignatura();

                        ae.id_asignatura     = asig.id_asignatura;
                        ae.id_docente        = asig.id_docente;
                        ae.id_estudiante     = asig.id_estudiante;
                        ae.id_grupo          = asig.id_grupo;
                        ae.id_periodo        = asig.id_periodo;
                        ae.activo            = true;
                        ae.aprobado          = false;
                        ae.completado        = false;
                        ae.horario           = asig.horario;
                        ae.fecha_inscripcion = DateTime.Now;
                        //se agrego periodoActual a 1
                        ae.periodoActual = true;
                        ae.anioPeriodo   = asig.anioPeriodo;
                        contexto.estudianteAsignatura.Add(ae);
                        contexto.SaveChanges();


                        return(true);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);

                throw;
            }
        }
        public ActionResult AsignarClase(AgregarHijosEstudianteAsignatura asig)
        {
            asig.Asignatura  = dl.lstAsignaturas();
            asig.Docente     = dl.lstDocente();
            asig.Grupo       = dl.lstGrupos();
            asig.anioPeriodo = (int)Session["anioPeriodo"];
            try
            {
                //Docentes.listaCat= dc.ListarCatalogoId(52).ToList();
                if (ModelState.IsValid)
                {
                    if (dl.ValidarAsignatura((Int32)asig.id_estudiante, (Int32)asig.id_asignatura))
                    {
                        if (dl.GuardarAsignacionClase(asig))
                        {
                            int idd = Convert.ToInt32(Session["idestudiante"]);
                            //Mandar msj de confirmación de guardado
                            Success("Clase Asignada!", true);
                            return(RedirectToAction("Edit", new { id = Convert.ToInt32(Session["idestudiante"]) }));
                        }

                        else
                        {
                            // return View(catalogos);
                            Danger("Alumno ya tiene asignada esta asignatura o ya fue aprobada en un periodo anterior!", true);
                            return(View(asig));
                        }
                    }
                    else
                    {
                        Danger("No se puede asignar clase debido a que alumno no aprueba clase dependiente aún!", true);
                        return(View(asig));
                    }
                }
                // TODO: Add insert logic here
                Danger("Error al asignar clase", true);
                return(View(asig));
            }
            catch (Exception ex)
            {
                string msj = ex.ToString();
                Danger("Error al asignar clase: " + ex.ToString(), true);
                return(View(asig));
            }
        }
        //metodos para pantalla interna de asignaciones
        public AgregarHijosEstudianteAsignatura ListarAsignarClasesEditar(int id)
        {
            AgregarHijosEstudianteAsignatura asig = new AgregarHijosEstudianteAsignatura();

            using (var contexto = new ControlAlumnosEntities())
            {
                asig = contexto.ListarHijosEstudianteAsig1(0).Where(x => x.idEstudianteAsignatura == id).Select(x => new AgregarHijosEstudianteAsignatura
                {
                    id_asignatura          = (long)x.id_asignatura,
                    idEstudianteAsignatura = x.idEstudianteAsignatura,
                    id_docente             = (long)x.id_docente,
                    id_estudiante          = (long)x.id_estudiante,
                    id_grupo = x.idGrupo,
                    horario  = x.horario,
                }).FirstOrDefault();

                return(asig);
            }
        }