Example #1
0
        public List <Curso> Todos(AlumnoCurso alumnoCurso)
        {//Se debe crear inner join para ignorar los cursos del alumno en cuestion
            var cursos = new List <Curso>();

            try
            {
                using (var ctx = new TestContext())
                {
                    if (alumnoCurso.Alumno_id > 0)
                    {
                        //Forma más sencilla

                        /*cursos = ctx.Database.SqlQuery<Curso>("SELECT C.* FROM Curso C WHERE C.id NOT IN (SELECT Curso_id FROM AlumnoCurso A WHERE A.Curso_id = C.id AND A.Alumno_id = @Alumno_id)", new SqlParameter("Alumno_id", alumnoCurso.Alumno_id))
                         *           .ToList();*/

                        var cursosTomados = ctx.AlumnoCurso.Where(x => x.Alumno_id == alumnoCurso.Alumno_id)
                                            .Select(x => x.Curso_id)
                                            .ToList();

                        if (alumnoCurso.id > 0)
                        {
                            // Cursos donde no esta el alumno (Cursos tomados, apartir de los tomados)
                            // Para la modificacion de la nota de un curso
                            cursos = ctx.Curso.Where(x => cursosTomados.Contains(x.id)).ToList();
                        }
                        else
                        {
                            // Cursos donde no esta el alumno (Cursos no tomados, apartir de los tomados)
                            // Para el registro de la nota de un curso
                            cursos = ctx.Curso.Where(x => !cursosTomados.Contains(x.id)).ToList();
                        }
                    }
                    else
                    {
                        cursos = ctx.Curso.ToList();
                    }
                }
            }catch (Exception)
            {
                throw;
            }

            return(cursos);
        }
Example #2
0
        public AlumnoCurso Eliminar()
        {
            var alumnoCurso = new AlumnoCurso();

            try
            {
                using (var ctx = new TestContext())
                {
                    ctx.Entry(this).State = EntityState.Deleted;
                    ctx.SaveChanges();
                }
            }
            catch (Exception e)
            {
                e.ToString();
                throw;
            }

            return(alumnoCurso);
        }