public GetAsignaturasModel GetAsignaturas()
        {
            var model = new GetAsignaturasModel();

            using (SchoolDataContext ctx = new SchoolDataContext())
            {
                var asignaturas = (from x in ctx.Asignaturas
                                   orderby x.Id, x.MateriaCod
                                   select new Model.Asignatura
                {
                    ID = x.Id,
                    CodigoMateria = x.MateriaCod,
                    Materia = x.Materia.Titulo,
                    AlumnoCedula = x.AlumnoDni,
                    Alumno = x.Alumno.Nombres,
                    ProfesorCedula = x.ProfesorDni,
                    Profesor = x.Profesor.Nombres,
                    NotaTareas = x.Tareas,
                    NotaExamen = x.Examen
                }).ToList();
                model.Asignaturas = asignaturas;

                model.Alumnos         = this.GetAlumnos();
                model.Profesores      = this.GetProfesores();
                model.PromedioGeneral = (from x in asignaturas
                                         select x.Promedio).Average();
            }
            return(model);
        }
        public GetAsignaturasModel GetAsignaturas(string filtro)
        {
            var model = new GetAsignaturasModel();

            using (SchoolDataContext ctx = new SchoolDataContext())
            {
                var rows = (from x in ctx.Asignaturas
                            orderby x.Id, x.MateriaCod
                            select new Model.Asignatura
                {
                    ID = x.Id,
                    CodigoMateria = x.MateriaCod,
                    Materia = x.Materia.Titulo,
                    AlumnoCedula = x.AlumnoDni,
                    Alumno = x.Alumno.Nombres,
                    ProfesorCedula = x.ProfesorDni,
                    Profesor = x.Profesor.Nombres,
                    NotaTareas = x.Tareas,
                    NotaExamen = x.Examen
                }).ToList();

                //if (string.IsNullOrWhiteSpace(filtro) == false)
                //{
                //    rows = from x in rows
                //           where filtro.Contains(x.AlumnoCedula) ||
                //           filtro.Contains(x.Alumno) ||
                //           filtro.Contains(x.Materia) ||
                //           filtro.Contains(x.Profesor)
                //           select x;
                //}
                if (string.IsNullOrWhiteSpace(filtro) == false && filtro.ToUpper().Equals("APROBADO"))
                {
                    rows = (from x in rows
                            where x.Aprobo == true
                            select x).ToList();
                }
                if (string.IsNullOrWhiteSpace(filtro) == false && filtro.ToUpper().Equals("REPROBADO"))
                {
                    rows = (from x in rows
                            where x.Aprobo == false
                            select x).ToList();
                }
                var rowsFiltered = (from x in rows
                                    orderby x.ID, x.CodigoMateria
                                    select x).ToList();
                model.Asignaturas = rowsFiltered;

                model.Alumnos         = this.GetAlumnos();
                model.Profesores      = this.GetProfesores();
                model.PromedioGeneral = (from x in rowsFiltered
                                         select x.Promedio).Average();

                return(model);
            }
        }
        public GetAsignaturasModel GetAsignaturasPorFiltro(GetAsignaturasPorFiltro filtro)
        {
            var model = new GetAsignaturasModel();

            using (SchoolDataContext ctx = new SchoolDataContext())
            {
                var rows = from x in ctx.Asignaturas
                           orderby x.Id, x.MateriaCod
                    select new Model.Asignatura
                {
                    ID             = x.Id,
                    CodigoMateria  = x.MateriaCod,
                    Materia        = x.Materia.Titulo,
                    AlumnoCedula   = x.AlumnoDni,
                    Alumno         = x.Alumno.Nombres,
                    ProfesorCedula = x.ProfesorDni,
                    Profesor       = x.Profesor.Nombres,
                    NotaTareas     = x.Tareas,
                    NotaExamen     = x.Examen
                };
                if (filtro != null)
                {
                    if (string.IsNullOrWhiteSpace(filtro.SelectedProfesorCod) == false)
                    {
                        rows = from x in rows
                               where filtro.SelectedProfesorCod.Equals(x.ProfesorCedula)
                               select x;
                    }
                    if (string.IsNullOrWhiteSpace(filtro.SelectedAlumnoCod) == false)
                    {
                        rows = from x in rows
                               where filtro.SelectedAlumnoCod.Equals(x.AlumnoCedula)
                               select x;
                    }
                }
                var rowsFiltered = (from x in rows
                                    orderby x.ID, x.CodigoMateria
                                    select x).ToList();

                model.Asignaturas = rowsFiltered;

                model.Alumnos         = this.GetAlumnos();
                model.Profesores      = this.GetProfesores();
                model.PromedioGeneral = (from x in rowsFiltered
                                         select x.Promedio).Average();

                return(model);
            }
        }