Example #1
0
        //===============================================================================================================================================================
        public bool AddSeguimiento(Seguimiento seguimiento)
        {
            //buscamos si ya existe un seguimiento (es decir si el estudiante "seguidor" sigue al estudiante "seguido")
            Estudiante_sigue_EstudianteDAO seg = RepositoryDAL1.Read <Estudiante_sigue_EstudianteDAO>(x => x.id_estudianteSeguido.Equals(seguimiento.id_estudianteSeguido) && x.id_estudianteSeguidor.Equals(seguimiento.id_estudianteSigue)).FirstOrDefault();

            //si no existe
            if (seg == null)
            {
                seg = new Estudiante_sigue_EstudianteDAO {
                    id_estudianteSeguidor = seguimiento.id_estudianteSigue, id_estudianteSeguido = seguimiento.id_estudianteSeguido
                };
                if (RepositoryDAL1.Create(seg))
                {
                    EstudianteDAO estSeguido = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(seguimiento.id_estudianteSeguido)).FirstOrDefault();
                    if (estSeguido == null)
                    {
                        return(false);                    //error, no existe el estudiante q usted quiere seguir
                    }
                    //sumamos la cantidad de seguidores
                    estSeguido.numero_seguidores += 1;
                    return(RepositoryDAL1.Update(estSeguido)); //se creo el seguimiento correctamente y se sumo los seguidores al seguido
                }

                //fallo al entra a la base de datos
            }

            //ya existia el seguimiento, no se hizo nada
            return(false);
        }
Example #2
0
        //===============================================================================================================================================================
        public bool DeleteSeguimiento(Seguimiento seguimiento)
        {
            Estudiante_sigue_EstudianteDAO seg = RepositoryDAL1.Read <Estudiante_sigue_EstudianteDAO>(x => x.id_estudianteSeguido.Equals(seguimiento.id_estudianteSeguido) && x.id_estudianteSeguidor.Equals(seguimiento.id_estudianteSigue)).FirstOrDefault();

            if (seg == null)
            {
                return(false);            //no existe el seguimiento
            }
            if (RepositoryDAL1.Delete(seg))
            {
                EstudianteDAO estSeguido = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(seguimiento.id_estudianteSeguido)).FirstOrDefault();
                if (estSeguido == null)
                {
                    return(false);                         //error, no existe el estudiante q usted quiere dejar seguir
                }
                estSeguido.numero_seguidores -= 1;         //restamos cantidad de seguidores
                return(RepositoryDAL1.Update(estSeguido)); //se actualizo y dejo de seguir estudiante

                //problema actualizando el estudiante
            }
            //problema borrando
            return(false);
        }
        //este método busca las publicaciones que se van a mostar en la página de otro
        //estudiante cuando se visita otro perfil.
        public IEnumerable <Publicacion> GetPublicaciones(string userid, string otherUserId, int pag)
        {
            Estudiante_sigue_EstudianteDAO estudianteSeguido = RepositoryDAL1.Read <Estudiante_sigue_EstudianteDAO>(x => x.id_estudianteSeguidor.Equals(userid) && x.id_estudianteSeguido.Equals(otherUserId)).FirstOrDefault();

            if (estudianteSeguido == null)
            {
                return(null);
            }
            string IdEstudianteSeguido = estudianteSeguido.id_estudianteSeguido;
            List <PublicacionDAO> listaPublicacionesVisibles = RepositoryDAL1.Read <PublicacionDAO, DateTime>(x => x.id_estudiante.Equals(IdEstudianteSeguido) && 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);
        }