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