Exemple #1
0
        public DTODocenteReporte ObtenerPeriodos(int ServicioId)
        {
            try
            {
                var Sistema = (from a in db.PreguntaServicios
                               where a.CategoriaId == ServicioId
                               select a.EsSabatino)
                                  .GroupBy(k => k).ToList().Select(O => O.FirstOrDefault()).ToList();
                DTODocenteReporte objd = new DTODocenteReporte();
                objd.DocenteId = ServicioId;
                objd.Nombre = db.Categorias.Where(k => k.CategoriaId == ServicioId).FirstOrDefault().Descripcion;
                objd.Sistema = new List<DTOSistemaR>();

                #region Todos
                List<DTOPeriodosR> lstPEriodost = new List<DTOPeriodosR>();


                var periodost = (from a in db.PreguntaServicios
                                 where a.CategoriaId == ServicioId
                                 select a.PeriodoId)
                              .GroupBy(k => k).ToList().Select(O => O.FirstOrDefault()).ToList();
                periodost.ForEach(p =>
                {
                    var carrerast = (from a in db.PreguntaServicios
                                     where a.CategoriaId == ServicioId && a.PeriodoId == p
                                     select a.CarreraId)
                             .GroupBy(k => k).ToList().Select(O => O.FirstOrDefault()).ToList();
                    lstPEriodost.Add(new DTOPeriodosR
                    {
                        Descripcion = db.Periodo.Where(p1 => p1.PeriodoId == p).FirstOrDefault().Descripcion,
                        PeriodoId = p,
                        Carreras = db.Carrera.Where(c => carrerast.Contains(c.CarreraId))
                                        .Select(c =>
                                            new DTOCarrerasR
                                            {
                                                CarreraId = c.CarreraId,
                                                Descripcion = c.Descripcion
                                            }).ToList()
                    });
                });

                objd.Sistema.Add(
                        new DTOSistemaR
                        {
                            SistemaId = -1,
                            Descripcion = "--Todos--",
                            Periodos = lstPEriodost
                        });
                #endregion

                #region Sistema Sabatino y Escolarizado
                Sistema.ForEach(l =>
                {
                    int sistemaEsc = l ? 1 : 2;
                    List<DTOPeriodosR> lstPEriodos = new List<DTOPeriodosR>();


                    var periodos = (from a in db.PreguntaServicios
                                    where a.CategoriaId == ServicioId && a.EsSabatino == l
                                    select a.PeriodoId)
                                  .GroupBy(k => k).ToList().Select(O => O.FirstOrDefault()).ToList();
                    periodos.ForEach(p =>
                    {
                        var carreras = (from a in db.PreguntaServicios
                                        where a.CategoriaId == ServicioId && a.EsSabatino == l && a.PeriodoId == p
                                        select a.CarreraId)
                                 .GroupBy(k => k).ToList().Select(O => O.FirstOrDefault()).ToList();
                        lstPEriodos.Add(new DTOPeriodosR
                        {
                            Descripcion = db.Periodo.Where(p1 => p1.PeriodoId == p).FirstOrDefault().Descripcion,
                            PeriodoId = p,
                            Carreras = db.Carrera.Where(c => carreras.Contains(c.CarreraId))
                                            .Select(c =>
                                                new DTOCarrerasR
                                                {
                                                    CarreraId = c.CarreraId,
                                                    Descripcion = c.Descripcion
                                                }).ToList()
                        });
                    });

                    objd.Sistema.Add(
                            new DTOSistemaR
                            {
                                SistemaId = sistemaEsc,
                                Descripcion = l == true ? "Sabatino" : "Escolarizado",
                                Periodos = lstPEriodos
                            });
                });
                #endregion

                return objd;
            }
            catch { return null; }
        }
Exemple #2
0
        public DTO.DTODocenteReporte OBtenerDocente(string DocenteId)
        {
            int DocenteId2 = int.Parse(DocenteId);

            db.Configuration.LazyLoadingEnabled = true;
            var list = db.PreguntaDocente.Where(k =>
                                                k.DocenteId == DocenteId2).AsNoTracking().ToList();

            #region Periodo -> Carrera -> Materia
            DTODocenteReporte objDocente;
            if (list.Count > 0)
            {
                objDocente = new DTODocenteReporte
                {
                    Nombre = list.FirstOrDefault().Docente.Nombre + " "
                             + list.FirstOrDefault().Docente.Paterno + " "
                             + list.FirstOrDefault().Docente.Materno,
                    DocenteId  = list.FirstOrDefault().Docente.DocenteId,
                    ImgDocente = list.FirstOrDefault().Docente.urlImagen,
                    Sistema    = list.GroupBy(k => k.EsSabatino)
                                 .Select(K => new DTOSistemaR
                    {
                        Descripcion = K.FirstOrDefault().EsSabatino ? "Sabatino" : "Escolarizado",
                        SistemaId   = K.FirstOrDefault().EsSabatino ? 1 : 0,
                        Periodos    = list.Where(o => o.EsSabatino).GroupBy(k =>
                                                                            k.PeriodoId).OrderBy(k =>
                                                                                                 k.FirstOrDefault().PeriodoId).Select(k =>
                                                                                                                                      new DTOPeriodosR
                        {
                            PeriodoId   = k.FirstOrDefault().PeriodoId,
                            Descripcion = k.FirstOrDefault().Periodo.Descripcion
                        }).ToList()
                    }).ToList()
                };

                objDocente.Sistema.Add(new DTOSistemaR
                {
                    Descripcion = "Todos",
                    SistemaId   = -1,
                    Periodos    = list.GroupBy(k =>
                                               k.PeriodoId).OrderBy(k =>
                                                                    k.FirstOrDefault().PeriodoId).Select(k =>
                                                                                                         new DTOPeriodosR
                    {
                        PeriodoId   = k.FirstOrDefault().PeriodoId,
                        Descripcion = k.FirstOrDefault().Periodo.Descripcion,
                        Carreras    = k.GroupBy(
                            l => l.CarreraId).OrderBy(l =>
                                                      l.FirstOrDefault().CarreraId)
                                      .Select(l =>
                                              new DTOCarrerasR
                        {
                            CarreraId   = l.FirstOrDefault().CarreraId,
                            Descripcion = l.FirstOrDefault().Carrera.Descripcion,
                            Materias    = l.GroupBy(M =>
                                                    M.MateriaId).OrderBy(M =>
                                                                         M.FirstOrDefault().MateriaId)
                                          .Select(M =>
                                                  new DTOMateriasR
                            {
                                MateriaId   = M.FirstOrDefault().MateriaId,
                                Descripcion = M.FirstOrDefault().Materia.Descripcion
                            }).ToList()
                        }).ToList()
                    }).ToList(),
                });
                objDocente.Sistema.ForEach(k1 =>
                {
                    if (k1.SistemaId == 1)
                    {
                        k1.Periodos = list.Where(o => o.EsSabatino).GroupBy(k =>
                                                                            k.PeriodoId).OrderBy(k =>
                                                                                                 k.FirstOrDefault().PeriodoId).Select(k =>
                                                                                                                                      new DTOPeriodosR
                        {
                            PeriodoId   = k.FirstOrDefault().PeriodoId,
                            Descripcion = k.FirstOrDefault().Periodo.Descripcion,
                            Carreras    = k.GroupBy(
                                l => l.CarreraId).OrderBy(l =>
                                                          l.FirstOrDefault().CarreraId)
                                          .Select(l =>
                                                  new DTOCarrerasR
                            {
                                CarreraId   = l.FirstOrDefault().CarreraId,
                                Descripcion = l.FirstOrDefault().Carrera.Descripcion,
                                Materias    = l.GroupBy(M =>
                                                        M.MateriaId).OrderBy(M =>
                                                                             M.FirstOrDefault().MateriaId)
                                              .Select(M =>
                                                      new DTOMateriasR
                                {
                                    MateriaId   = M.FirstOrDefault().MateriaId,
                                    Descripcion = M.FirstOrDefault().Materia.Descripcion
                                }).ToList()
                            }).ToList()
                        }).ToList();
                    }
                    else if (k1.SistemaId == 0)
                    {
                        k1.Periodos = list.Where(o => !o.EsSabatino).GroupBy(k =>
                                                                             k.PeriodoId).OrderBy(k =>
                                                                                                  k.FirstOrDefault().PeriodoId).Select(k =>
                                                                                                                                       new DTOPeriodosR
                        {
                            PeriodoId   = k.FirstOrDefault().PeriodoId,
                            Descripcion = k.FirstOrDefault().Periodo.Descripcion,
                            Carreras    = k.GroupBy(
                                l => l.CarreraId).OrderBy(l =>
                                                          l.FirstOrDefault().CarreraId)
                                          .Select(l =>
                                                  new DTOCarrerasR
                            {
                                CarreraId   = l.FirstOrDefault().CarreraId,
                                Descripcion = l.FirstOrDefault().Carrera.Descripcion,
                                Materias    = l.GroupBy(M =>
                                                        M.MateriaId).OrderBy(M =>
                                                                             M.FirstOrDefault().MateriaId)
                                              .Select(M =>
                                                      new DTOMateriasR
                                {
                                    MateriaId   = M.FirstOrDefault().MateriaId,
                                    Descripcion = M.FirstOrDefault().Materia.Descripcion
                                }).ToList()
                            }).ToList()
                        }).ToList();
                    }
                });
            }
            else
            {
                return(new DTODocenteReporte
                {
                    DocenteId = 5,
                    Nombre = db.Docente.Where(k => k.DocenteId == DocenteId2).FirstOrDefault().Nombre
                });
            }
            #endregion

            return(objDocente);
        }