//=============================================================================================================================================================== public bool DeleteApoyo(Apoyo apoyo) { EstudianteDAO estudianteApoyado = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(apoyo.id_estudianteApoyado)).FirstOrDefault(); EstudianteDAO estudianteApoya = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(apoyo.id_estudianteQueApoya)).FirstOrDefault();; TecnologiaDAO tecnologia = RepositoryDAL1.Read <TecnologiaDAO>(x => x.nombre.Equals(apoyo.Tecnologia)).FirstOrDefault(); ApoyoDAO apy = RepositoryDAL1.Read <ApoyoDAO>(x => x.id_estudianteApoyado.Equals(apoyo.id_estudianteApoyado) && x.id_estudianteDaApoyo.Equals(apoyo.id_estudianteQueApoya) && x.id_tecnologia.Equals(tecnologia.id)).FirstOrDefault(); //si no existe el apoyo if (apy == null) { return(false); //el apoyo no existe } else { if (RepositoryDAL1.Delete(apy)) { //sumamos la cantidad de apoyos disponibles y actualizamos estudianteApoya.apoyos_disponibles += 1; RepositoryDAL1.Update(estudianteApoya); //se resta la cantidad de apoyos a la tabla de tecnologiasXestudiante Tecnologia_x_EstudianteDAO tecEst = RepositoryDAL1.Read <Tecnologia_x_EstudianteDAO>(x => x.id_estudiante.Equals(estudianteApoyado.id_usuario) && x.id_tecnologia.Equals(tecnologia.id)).FirstOrDefault(); tecEst.cantidadApoyos -= 1; RepositoryDAL1.Update(tecEst); return(true); //borró el apoyo } } //error al crear el apoyo return(false); }
//=============================================================================================================================================================== public bool AddApoyo(Apoyo apoyo) { EstudianteDAO estudianteApoyado = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(apoyo.id_estudianteApoyado)).FirstOrDefault(); EstudianteDAO estudianteApoya = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(apoyo.id_estudianteQueApoya)).FirstOrDefault();; TecnologiaDAO tecnologia = RepositoryDAL1.Read <TecnologiaDAO>(x => x.nombre.Equals(apoyo.Tecnologia)).FirstOrDefault(); ApoyoDAO apy = RepositoryDAL1.Read <ApoyoDAO>(x => x.id_estudianteApoyado.Equals(apoyo.id_estudianteApoyado) && x.id_estudianteDaApoyo.Equals(apoyo.id_estudianteQueApoya) && x.id_tecnologia.Equals(tecnologia.id)).FirstOrDefault(); //si no existe el apoyo if (apy == null) { //si el estudiante que apoya tiene apoyos disponibles if (estudianteApoya.apoyos_disponibles > 0) { ApoyoDAO apoyoAAgregar = new ApoyoDAO { fecha = DateTime.Now, id_estudianteApoyado = apoyo.id_estudianteApoyado, id_estudianteDaApoyo = apoyo.id_estudianteQueApoya, id_tecnologia = tecnologia.id }; RepositoryDAL1.Create(apoyoAAgregar); //restamos la cantidad de apoyos disponibles y actualizamos estudianteApoya.apoyos_disponibles -= 1; RepositoryDAL1.Update(estudianteApoya); //se suma la cantidad de apoyos a la tabla de tecnologiasXestudiante Tecnologia_x_EstudianteDAO tecEst = RepositoryDAL1.Read <Tecnologia_x_EstudianteDAO>(x => x.id_estudiante.Equals(estudianteApoyado.id_usuario) && x.id_tecnologia.Equals(tecnologia.id)).FirstOrDefault(); tecEst.cantidadApoyos += 1; RepositoryDAL1.Update(tecEst); string nombreCompletoEstudianteQueApoya = estudianteApoya.Usuario.nombre + " " + estudianteApoya.Usuario.apellido; string nombreCompletoEstudianteApoyado = estudianteApoyado.Usuario.nombre + " " + estudianteApoyado.Usuario.apellido; ExternalAPIs.TwitterConnection.sendTweet(nombreCompletoEstudianteQueApoya, nombreCompletoEstudianteApoyado, tecnologia.nombre); return(true); //creo el apoyo } //no tiene suficientes apoyos disponibles } //el apoyo ya existe return(false); }
//=============================================================================================================================================================== public Estudiante GetEstudianteAjeno(string estudiante1, string EstudianteaBuscar) { //obtner el la informacion de usuario y de estudiante de la base de datos EstudianteDAO estudiante = RepositoryDAL1.Read <EstudianteDAO>(x => x.id_usuario.Equals(EstudianteaBuscar)).FirstOrDefault(); UsuarioDAO user = RepositoryDAL1.Read <UsuarioDAO>(x => x.id.Equals(EstudianteaBuscar)).FirstOrDefault(); if (estudiante == null && user == null) { return(null); } //obtener la informacion de tecnologias del estudiante List <Tecnologia_x_EstudianteDAO> tecEstudiante = RepositoryDAL1.Read <Tecnologia_x_EstudianteDAO>(x => x.id_estudiante.Equals(EstudianteaBuscar)); //creamos la lista de tecnolgias con sus respectivos apoyos List <Estudiante.TecnologiaPerfil> tecApoyo = new List <Estudiante.TecnologiaPerfil>(); foreach (Tecnologia_x_EstudianteDAO tec in tecEstudiante) { //buscamos si la persona ha sido apoyada por el estudiante que lo busca ApoyoDAO apoyo = RepositoryDAL1.Read <ApoyoDAO>(x => x.id_estudianteDaApoyo.Equals(estudiante1) && x.id_estudianteApoyado.Equals(EstudianteaBuscar) && x.id_tecnologia.Equals(tec.id_tecnologia)).FirstOrDefault(); if (apoyo != null) { //si el apoyo fue dado en la ultima semana if (apoyo.fecha < DateTime.Now.AddDays(-WEEK)) { tecApoyo.Add(new Estudiante.TecnologiaPerfil { Apoyos = tec.cantidadApoyos, MiApoyo = "fijo", Nombre = tec.Tecnologia.nombre }); } //apoyo dado hace mas de una semana else { tecApoyo.Add(new Estudiante.TecnologiaPerfil { Apoyos = tec.cantidadApoyos, MiApoyo = "transitorio", Nombre = tec.Tecnologia.nombre }); } } //no ha sido apoyado en esta tecnologia else { tecApoyo.Add(new Estudiante.TecnologiaPerfil { Apoyos = tec.cantidadApoyos, MiApoyo = "null", Nombre = tec.Tecnologia.nombre }); } } //crear el estudiante Estudiante result = new Estudiante { Id = user.id, Apellido = user.apellido, CantSeguidores = estudiante.numero_seguidores, Correo = user.correo_principal, Correo2 = estudiante.correo_secundario, Descripcion = estudiante.descripcion, FechaInscripcion = user.fecha_creacion, Nombre = user.nombre, Pais = estudiante.Pai.nombre, Participacion = estudiante.participacion, Reputacion = estudiante.reputacion, Telefono = estudiante.telefono_celular, Telefono2 = estudiante.telefono_fijo, Universidad = estudiante.Universidad.nombre, Tecnologias = tecApoyo, Foto = estudiante.foto }; return(result); }