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 AddTecnologia(Tecnologia tecnologia)
        {
            CategoriaDAO categoriacategoriaExistente = RepositoryDAL1.Read <CategoriaDAO>(x => x.nombre.Equals(tecnologia.Categoria)).FirstOrDefault();

            if (categoriacategoriaExistente == null)
            {
                CategoriaDAO nuevaCat = new CategoriaDAO {
                    nombre = tecnologia.Categoria
                };
                RepositoryDAL1.Create(nuevaCat);
            }
            CategoriaDAO  categoriaActual = RepositoryDAL1.Read <CategoriaDAO>(x => x.nombre.Equals(tecnologia.Categoria)).FirstOrDefault();
            TecnologiaDAO nuevaTec        = new TecnologiaDAO {
                nombre = tecnologia.Nombre, id_categoria = categoriaActual.id
            };

            return(RepositoryDAL1.Create(nuevaTec));
        }
Exemple #3
0
        //===============================================================================================================================================================
        public string CrearEstudiante(string password, Estudiante estudiante)
        {
            //primero buscamos a ver si existe ese estudiante
            UsuarioDAO    user  = RepositoryDAL1.Read <UsuarioDAO>(x => x.id.Equals(estudiante.Id)).FirstOrDefault();
            EstudianteDAO estud = RepositoryDAL1.Read <EstudianteDAO>(x => x.Usuario.id.Equals(estudiante.Id)).FirstOrDefault();

            //si no existe el estudiante
            if (user == null && estud == null)
            {
                PaisDAO        pais = RepositoryDAL1.Read <PaisDAO>(x => x.nombre.Equals(estudiante.Pais)).FirstOrDefault();
                UniversidadDAO univ = RepositoryDAL1.Read <UniversidadDAO>(x => x.nombre.Equals(estudiante.Universidad)).FirstOrDefault();


                //fallo al crear el pais y universidad
                if (pais == null || univ == null)
                {
                    return("la universidad o pais dados no existen");
                }


                user = new UsuarioDAO
                {
                    id               = estudiante.Id,
                    activo           = true,
                    apellido         = estudiante.Apellido,
                    contrasena       = password,
                    correo_principal = estudiante.Correo,
                    fecha_creacion   = DateTime.Now,
                    is_admin         = false,
                    nombre           = estudiante.Nombre
                };
                estud = new EstudianteDAO
                {
                    id_usuario         = estudiante.Id,
                    apoyos_disponibles = APOYOS_SEMANA,
                    descripcion        = estudiante.Descripcion,
                    correo_secundario  = estudiante.Correo2,
                    id_pais            = pais.id,
                    telefono_celular   = estudiante.Telefono,
                    telefono_fijo      = estudiante.Telefono2,
                    foto              = estudiante.Foto,
                    id_universidad    = univ.id,
                    numero_seguidores = 0,
                    participacion     = 0,
                    reputacion        = 0
                };

                //agregar los DAO a la base de Datos
                if (RepositoryDAL1.Create(user))
                {
                    if (RepositoryDAL1.Create(estud))
                    {
                        //una vez creados el usuario y estudiante, agregamos las tecnologias
                        //se obtiene la lista de tecnologias que el estudiante selecciono
                        IEnumerable <string> listaNombreTecnologias = estudiante.Tecnologias.Select(t => t.Nombre);
                        List <TecnologiaDAO> tecnologiasEstudiante  = RepositoryDAL1.Read <TecnologiaDAO>(x => listaNombreTecnologias.Contains(x.nombre));
                        //por cada una de las tecnologías se agrega la nueva tecnologia
                        foreach (TecnologiaDAO tec in tecnologiasEstudiante)
                        {
                            if (!RepositoryDAL1.Create(new Tecnologia_x_EstudianteDAO
                            {
                                id_estudiante = estudiante.Id,
                                id_tecnologia = tec.id,
                                cantidadApoyos = 0
                            }))
                            {
                                return("Hubo un error al agregar las tecnologias del estudiante");//error al crear la tecnologia x estudiante
                            }
                        }
                        return(SUCCESS);
                    }
                }

                //fallo al ingresar a la base de datos
            }
            return("Ya existe un estudiante con ese Carne");
        }