예제 #1
0
        public List <T> GetAll <T, TDAO>() where T : new() where TDAO : class
        {
            List <TDAO> listObjetos = RepositoryDAL1.Read <TDAO>();
            List <T>    returnList  = new List <T>();

            foreach (TDAO item in listObjetos)
            {
                T switchedObject = Switch <T>(item);
                returnList.Add(switchedObject);
            }
            return(returnList);
        }
예제 #2
0
        //metodos
        //===============================================================================================================================================================

        //Obtiene los datos del estudiante que está logueado
        public Estudiante GetEstudiantePropio(string EstudianteId)
        {
            //obtner la informacion de usuario y de estudiante de la base de datos
            EstudianteDAO estudiante = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(EstudianteId)).FirstOrDefault();
            UsuarioDAO    user       = RepositoryDAL1.Read <UsuarioDAO>(x => x.id.Equals(EstudianteId)).FirstOrDefault();

            if (estudiante == null && user == null)   //si no existen
            {
                return(null);
            }

            //obtener la informacion de tecnologias del estudiante
            List <Tecnologia_x_EstudianteDAO> tecEstudiante = RepositoryDAL1.Read <Tecnologia_x_EstudianteDAO>(x => x.id_estudiante.Equals(EstudianteId));

            //creamos la lista de tecnolgias con sus respectivos apoyos
            List <Estudiante.TecnologiaPerfil> tecApoyo = new List <Estudiante.TecnologiaPerfil>();
            IEnumerable <int> listaIdTecnologias        = tecEstudiante.Select(x => x.id);

            List <TecnologiaDAO> listaTecnologias = RepositoryDAL1.Read <TecnologiaDAO>(x => listaIdTecnologias.Contains(x.id));

            foreach (Tecnologia_x_EstudianteDAO tec in tecEstudiante)
            {
                //se pone el apyo como "fijo" para que no salga el botoncito de "+" puesto que yo no me puedo apoyar a mi mismo
                tecApoyo.Add(new Estudiante.TecnologiaPerfil {
                    Apoyos = tec.cantidadApoyos, MiApoyo = "fijo", Nombre = tec.Tecnologia.nombre
                });
            }

            //crear el estudiante
            Estudiante result = new Estudiante
            {
                Id                = user.id,
                Apellido          = user.apellido,
                CantSeguidores    = estudiante.numero_seguidores,
                Correo            = user.correo_principal,
                Correo2           = estudiante.correo_secundario,
                Descripcion       = estudiante.descripcion,
                FechaInscripcion  = user.fecha_creacion,
                Nombre            = user.nombre,
                Pais              = estudiante.Pai.nombre,
                Participacion     = estudiante.participacion,
                Reputacion        = estudiante.reputacion,
                Telefono          = estudiante.telefono_celular,
                Telefono2         = estudiante.telefono_fijo,
                Universidad       = estudiante.Universidad.nombre,
                Tecnologias       = tecApoyo,
                ApoyosDisponibles = estudiante.apoyos_disponibles,
                Foto              = estudiante.foto
            };

            return(result);
        }
        public IEnumerable <Publicacion> GetPublicaciones(string userid, int pag)
        {
            List <Estudiante_sigue_EstudianteDAO> listSeguidos = RepositoryDAL1.Read <Estudiante_sigue_EstudianteDAO>(x => x.id_estudianteSeguidor.Equals(userid));

            listSeguidos.Add(new Estudiante_sigue_EstudianteDAO {
                id_estudianteSeguido = userid
            });
            IEnumerable <string>  listIdSeguidos             = listSeguidos.Select(y => y.id_estudianteSeguido);
            List <PublicacionDAO> listaPublicacionesVisibles = RepositoryDAL1.Read <PublicacionDAO, DateTime>(x => listIdSeguidos.Contains(x.id_estudiante) && x.activo, x => x.fecha_publicacion);
            List <PublicacionDAO> veintePublicaciones        = listaPublicacionesVisibles.Skip(20 * (pag - 1)).Take(20).ToList();

            if (veintePublicaciones.Count() == 0)
            {
                return(new List <Publicacion>());
            }
            IEnumerable <int>                  listaIdPublicaciones         = veintePublicaciones.Select(x => x.id);
            List <TutoriaDAO>                  listaTutorias                = RepositoryDAL1.Read <TutoriaDAO>(x => listaIdPublicaciones.Contains(x.id_publicacion));
            IEnumerable <int>                  listaIDTutorias              = listaTutorias.Select(x => x.id);
            List <RegistroTutoriaDAO>          listRegistros                = RepositoryDAL1.Read <RegistroTutoriaDAO>(x => listaIDTutorias.Contains(x.id_tutoria));
            List <Tecnologia_x_publicacionDAO> listaTecnologiasxPublicacion = RepositoryDAL1.Read <Tecnologia_x_publicacionDAO>(x => listaIdPublicaciones.Contains(x.id_publicacion));
            IEnumerable <int>                  listaIdTecnologias           = listaTecnologiasxPublicacion.Select(x => x.id_tecnologia);
            List <TecnologiaDAO>               listaTecnologias             = RepositoryDAL1.Read <TecnologiaDAO>(x => listaIdTecnologias.Contains(x.id));
            List <ContenidoDAO>                listaContenidos              = RepositoryDAL1.Read <ContenidoDAO>(x => listaIdPublicaciones.Contains(x.id_publicacion));
            IEnumerable <int>                  listaIdDocumentos            = listaContenidos.Where(x => x.id_documento != null).Select(x => (int)x.id_documento);
            List <DocumentoDAO>                listaDocumentos              = RepositoryDAL1.Read <DocumentoDAO>(x => listaIdDocumentos.Contains(x.id));
            List <ComentarioDAO>               comentarios             = RepositoryDAL1.Read <ComentarioDAO>(x => listaIdPublicaciones.Contains(x.id_publicacion));
            List <EvaluacionDAO>               evaluaciones            = RepositoryDAL1.Read <EvaluacionDAO>(x => listaIdPublicaciones.Contains(x.id_publicacion));
            IEnumerable <string>               estudiantesIdPublicando = veintePublicaciones.Select(x => x.id_estudiante);
            List <UsuarioDAO>                  listaUsuarios           = RepositoryDAL1.Read <UsuarioDAO>(x => estudiantesIdPublicando.Contains(x.id));


            List <Publicacion> listaAEnviar = new List <Publicacion>();

            foreach (PublicacionDAO publicacion in listaPublicacionesVisibles)
            {
                if (publicacion.isTutoria)
                {
                    Tutoria publicacionAAgregar = new Tutoria();
                    AddDatosPublicacion(publicacion, comentarios, evaluaciones, listaUsuarios, listaTecnologiasxPublicacion, listaTecnologias, userid, ref publicacionAAgregar);
                    TutoriaDAO tutoria = listaTutorias.Where(x => x.id_publicacion == publicacion.id).FirstOrDefault();
                    publicacionAAgregar.Costo = tutoria.costo;
                    IEnumerable <string> listaIdEstudiantesRegistro = listRegistros.Where(x => x.id_tutoria == tutoria.id).Select(x => x.id_estudiante);
                    publicacionAAgregar.EstoyRegistrado = listaIdEstudiantesRegistro.Contains(userid) ? true : false;
                    publicacionAAgregar.FechaTutoria    = tutoria.fecha_tutoria;
                    publicacionAAgregar.Lugar           = tutoria.lugar;
                    listaAEnviar.Add(publicacionAAgregar);
                }
                else
                {
                    Contenido publicacionAAgregar = new Contenido();
                    AddDatosPublicacion(publicacion, comentarios, evaluaciones, listaUsuarios, listaTecnologiasxPublicacion, listaTecnologias, userid, ref publicacionAAgregar);
                    ContenidoDAO contenido = listaContenidos.Where(x => x.id_publicacion == publicacion.id).FirstOrDefault();
                    DocumentoDAO documento = listaDocumentos.Where(x => x.id == contenido.id_documento).FirstOrDefault();
                    publicacionAAgregar.Documento = documento == null ? "" : documento.contenido;
                    publicacionAAgregar.Link      = contenido.enlace_extra;
                    publicacionAAgregar.Video     = contenido.enlace_video;
                    listaAEnviar.Add(publicacionAAgregar);
                }
            }
            return(listaAEnviar);
        }