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);
        }
Example #2
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);
        }