public bool CreatePublicacion(Contenido contenido) { IEnumerable <string> nombresTecnologias = contenido.Tecnologias.Select(x => x.Nombre); List <TecnologiaDAO> listaTecnologias = RepositoryDAL1.Read <TecnologiaDAO>(x => nombresTecnologias.Contains(x.nombre)); List <Tecnologia_x_publicacionDAO> listaTecnologiasPublicacion = new List <Tecnologia_x_publicacionDAO>(); if (RepositoryDAL1.Create <PublicacionDAO>(new PublicacionDAO { descripcion = contenido.Descripcion, fecha_publicacion = DateTime.Now, id_estudiante = contenido.Id_autor, isTutoria = false, titulo = contenido.Titulo, Tecnologia_x_publicacion = listaTecnologiasPublicacion, activo = true })) { int id_publicacionCreada = RepositoryDAL1.Read <PublicacionDAO, int>(x => x.id > 0, x => x.id).FirstOrDefault().id; if (contenido.Documento != null) { RepositoryDAL1.Create <DocumentoDAO>(new DocumentoDAO { contenido = contenido.Documento, tipo = "", tamano = 0 }); } int id_contenidoCreado = RepositoryDAL1.Read <DocumentoDAO, int>(x => x.id > 0, x => x.id).FirstOrDefault().id; ContenidoDAO nuevoContenido = new ContenidoDAO { enlace_extra = contenido.Link, enlace_video = contenido.Video, id_publicacion = id_publicacionCreada, id_documento = contenido.Documento != null ? (int?)id_contenidoCreado : null }; if (RepositoryDAL1.Create <ContenidoDAO>(nuevoContenido)) { foreach (var tecnologia in listaTecnologias) { listaTecnologiasPublicacion.Add(new Tecnologia_x_publicacionDAO { id_tecnologia = tecnologia.id, id_publicacion = id_publicacionCreada }); } EstudianteDAO estudianteAModificar = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(contenido.Id_autor)).FirstOrDefault(); estudianteAModificar.participacion++; RepositoryDAL1.Update(estudianteAModificar); return(RepositoryDAL1.Create <Tecnologia_x_publicacionDAO>(listaTecnologiasPublicacion)); } } return(false); }
//=============================================================================================================================================================== 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); }