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); }
//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); }