Пример #1
0
        public List <CursosDtos.CursosHorarioListSearch> GetCursosHorariosSearchDtos()
        {
            var cursosList = (from c in dbCtx.Cursos
                              join ch in dbCtx.CursosHorarios on c.IdCurso equals ch.IdCurso
                              join cp in dbCtx.CursosProfesors on ch.IdCursosHorarios equals cp.IdCursosHorarios into JoinedCP
                              from cp in JoinedCP.DefaultIfEmpty()
                              join h in dbCtx.Horarios on ch.IdHorario equals h.IdHorario into JoinedH
                              from h in JoinedH.DefaultIfEmpty()
                              where cp.Activo
                              select new {
                c.Descripcion,
                c.Activo,
                ch.IdCursosHorarios,
                Horario = h.Descripcion
            }
                              ).ToList();
            var localList = new List <CursosDtos.CursosHorarioListSearch>();

            for (int i = 0; i < cursosList.Count; i++)
            {
                localList.Add(new CursosDtos.CursosHorarioListSearch
                {
                    Id      = i + 1,
                    Descrip = cursosList[i].Descripcion,
                    Activo  = cursosList[i].Activo,
                    Key     = cursosList[i].IdCursosHorarios,
                    Horario = cursosList[i].Horario
                });
            }
            return(localList);
        }
Пример #2
0
        public IEnumerable <CursosDtos.ReporteCursosList> ReporteCursosDtos()
        {
            var query = from c in dbCtx.Cursos
                        join ch in dbCtx.CursosHorarios
                        on c.IdCurso equals ch.IdCurso into JoinedCH
                        from ch in JoinedCH.DefaultIfEmpty()
                        join h in dbCtx.Horarios
                        on ch.IdHorario equals h.IdHorario into JoinedH
                        from h in JoinedH.DefaultIfEmpty()
                        join cp in dbCtx.CursosProfesors
                        on ch.IdCursosHorarios equals cp.IdCursosHorarios into JoinedCP
                        from cp in JoinedCP.DefaultIfEmpty()
                        join p in dbCtx.Profesores
                        on cp.IdProfesor equals p.IdProfesor into JoinedP
                        from p in JoinedP.DefaultIfEmpty()
                        join ce in dbCtx.CursosEstudiantes
                        on ch.IdCursosHorarios equals ce.IdCursosHorarios into JoinedCE
                        from ce in JoinedCE.DefaultIfEmpty()
                        join e in dbCtx.Estudiantes
                        on ce.IdEstudiante equals e.IdEstudiante into JoinedE
                        from e in JoinedE.DefaultIfEmpty()
                        orderby c.IdCurso
                        select new CursosDtos.ReporteCursosList
            {
                IdCurso            = (int?)c.IdCurso,
                NombreCurso        = c.Descripcion,
                LimiteAusencias    = cp.LimiteAusencias,
                IdProfesor         = (int?)p.IdProfesor,
                NombreProfesor     = p.Nombre,
                IdHorario          = (int?)h.IdHorario,
                DescripcionHorario = h.Descripcion,
                IdEstudiante       = (int?)e.IdEstudiante,
                NombreEstudiante   = e.Nombre
            };

            return(query);

            // comp[act version + lamda
            //from c in Cursos
            //    from ch in CursosHorarios.Where(ch=>ch.IdCurso == c.IdCurso).DefaultIfEmpty()
            //    from h in Horarios.Where(h=>h.IdHorario == ch.IdHorario).DefaultIfEmpty()
            //    select new
            //    {
            //        c.IdCurso, NombreCurso = c.Descripcion, DescripcionHorario = h.Descripcion
            //    }
        }