示例#1
0
        //===============================================================================================================================================================
        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);
        }
示例#2
0
        //===============================================================================================================================================================
        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);
        }
示例#3
0
        //===============================================================================================================================================================

        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);
        }