示例#1
0
 public static List <Asignatura> GetAsignaturasCompletas(FiltroAsignatura filtro)
 {
     filtro.Nombre     = string.IsNullOrEmpty(filtro.Nombre) ? "" : filtro.Nombre;
     filtro.Docente    = string.IsNullOrEmpty(filtro.Docente) ? "" : filtro.Docente;
     filtro.Asignatura = string.IsNullOrEmpty(filtro.Asignatura) ? "" : filtro.Asignatura;
     using (var r = new DatabaseEntities())
     {
         return((from c in r.Curso
                 join i in r.Inscripcion on c.IDCurso equals i.IDCurso into ins
                 from i in ins.DefaultIfEmpty()
                 join a in r.Alumno on i.IDAlumno equals a.IDAlumno into al
                 from a in al.DefaultIfEmpty()
                 join m in r.Materia on c.IDMateria equals m.IDMateria
                 join d in r.Docente on c.IDDocente equals d.IDDocente
                 where
                 (!filtro.IdAlumno.HasValue || a.IDAlumno == filtro.IdAlumno.Value) &&
                 (!filtro.IdCurso.HasValue || c.IDCurso == filtro.IdCurso.Value) &&
                 (!filtro.Legajo.HasValue || a.Legajo == filtro.Legajo.Value) &&
                 (filtro.Asignatura == "" || m.Nombre.Contains(filtro.Asignatura)) &&
                 (filtro.Docente == "" || d.Nombre.Contains(filtro.Docente)) &&
                 ((int)filtro.Estado == 0 || i.IDEstado == (int)filtro.Estado) &&
                 (filtro.Nombre == "" || a.Nombre.Contains(filtro.Nombre))
                 orderby c.IDCurso descending, i.FechaInscripcion descending
                 select new Asignatura()
         {
             Alumno = a, Curso = c, Inscripcion = i, Materia = m, Docente = d
         }
                 ).ToList());
     }
 }
        public ActionResult Index(FiltroAsignatura filtro)
        {
            var          asignaturas = AsignaturaDA.GetAsignaturasCompletas(filtro);
            MPAsignatura asig        = new MPAsignatura()
            {
                Filtro = filtro, Asignaturas = asignaturas
            };

            return(View(asig));
        }