示例#1
0
        public void insertarTweetOtro(Tweet tweet)
        {
            NodoDoblementeEnlazado nodo = new NodoDoblementeEnlazado();

            nodo.tweet = tweet;
            this.insertar(nodo);
        }
示例#2
0
        public void PruebaTwitear()
        {
            //Agregar usuario 1
            Random  rnd            = new Random();
            int     int_usuario    = rnd.Next(10000, 30000);
            String  _username      = "******" + int_usuario;
            Usuario objeto_usuario = new Usuario();

            objeto_usuario.nickname = _username;
            objeto_usuario.clave    = _username;
            _arbol.agregar_usuario(objeto_usuario);
            //Twitear
            Tweet tweet = new Tweet(objeto_usuario, "Prueba MSG");

            objeto_usuario.tweets_muro.insertarTweet(tweet);
            _arbol.modifica_usuario(objeto_usuario);
            _arbol.inserta_xml_tuits();
            //Revisar tweet
            NodoDoblementeEnlazado primero = objeto_usuario.tweets_muro.primero;

            if (primero.tweet.contenido.ToString() == "Prueba MSG")
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.IsTrue(false, "Error al twittear");
            }
        }
示例#3
0
        public void insertarTweet(Tweet tweet)
        {
            NodoDoblementeEnlazado nodo = new NodoDoblementeEnlazado();

            nodo.tweet = tweet;
            this.insertar(nodo);
            for (int i = 0; i <= 1026; i++)
            {
                if (tweet.usuario.seguidores.Buscar(i) != null)
                {
                    tweet.usuario.seguidores.Buscar(i).tweets_muro.insertarTweetOtro(tweet);
                }
            }
        }
示例#4
0
 public void insertar(NodoDoblementeEnlazado nodo)
 {
     if (primero == null || ultimo == null)
     {
         primero = nodo;
         ultimo  = nodo;
     }
     else
     {
         nodo.anterior           = ultimo;
         nodo.anterior.siguiente = nodo;
         ultimo = nodo;
     }
 }
示例#5
0
 public NodoDoblementeEnlazado EliminarNodo(NodoDoblementeEnlazado nodo, Tweet tweet)
 {
     if (nodo.tweet.contenido == tweet.contenido && nodo.tweet.fechaHora == tweet.fechaHora)
     {
         nodo = nodo.siguiente;
         if (nodo.anterior != null)
         {
             nodo.anterior.siguiente = nodo;
         }
     }
     else
     {
         nodo.siguiente = EliminarNodo(nodo.siguiente, tweet);
     }
     return(nodo);
 }
示例#6
0
        public ActionResult ListadoTuitExternos(String username)
        {
            Arbol   arbol   = new Arbol();
            Usuario usuario = arbol.obtiene_usuario(username);

            if (usuario == null)
            {
                return(new EmptyResult());
            }
            int tamanio = 0;
            NodoDoblementeEnlazado primero = usuario.tweets_muro.primero;

            while (primero != null)
            {
                if (primero.tweet.usuario.nickname == username)
                {
                    tamanio++;
                }
                primero = primero.siguiente;
            }
            String[,] listado = new String[tamanio, 5];
            NodoDoblementeEnlazado ultimo = usuario.tweets_muro.ultimo;
            int    contador     = 0;
            string assemblyFile = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;

            while (ultimo != null)
            {
                if (ultimo.tweet.usuario.nickname == username)
                {
                    listado[contador, 0] = ultimo.tweet.contenido;
                    listado[contador, 1] = ultimo.tweet.usuario.nombreCompleto;
                    string imagen = "avatar1.png";
                    if (System.IO.File.Exists(assemblyFile + "/../../Content/img/" + ultimo.tweet.usuario.ubicacionImagen))
                    {
                        imagen = ultimo.tweet.usuario.ubicacionImagen;
                    }
                    listado[contador, 2] = imagen;
                    listado[contador, 3] = ultimo.tweet.usuario.nickname;
                    listado[contador, 4] = ultimo.tweet.fechaHora.Day + "/" + ultimo.tweet.fechaHora.Month + "/" + ultimo.tweet.fechaHora.Year + " " + ultimo.tweet.fechaHora.Hour + ":" + ultimo.tweet.fechaHora.Minute;
                    contador++;
                }
                ultimo = ultimo.anterior;
            }
            string json = JsonConvert.SerializeObject(listado);

            return(Content(json, "application/json"));
        }
示例#7
0
        public ActionResult ListadoTuit()
        {
            Arbol   arbol    = new Arbol();
            String  username = Session["Usuario"].ToString();
            Usuario usuario  = arbol.obtiene_usuario(username);
            int     tamanio  = 0;
            NodoDoblementeEnlazado primero = usuario.tweets_muro.primero;

            while (primero != null)
            {
                tamanio++;
                primero = primero.siguiente;
            }
            String[,] listado = new String[tamanio, 5];
            NodoDoblementeEnlazado ultimo = usuario.tweets_muro.ultimo;
            int          contador         = 0;
            string       assemblyFile     = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
            List <Tweet> listado_tweet    = new List <Tweet>();

            //filling the counts

            while (ultimo != null)
            {
                listado_tweet.Add(ultimo.tweet);
                ultimo = ultimo.anterior;
            }
            listado_tweet = listado_tweet.OrderByDescending(lc => lc.fechaHora).ToList();
            ultimo        = usuario.tweets_muro.ultimo;
            foreach (var tweet in listado_tweet)
            {
                listado[contador, 0] = tweet.contenido;
                listado[contador, 1] = tweet.usuario.nombreCompleto;
                listado[contador, 2] = tweet.usuario.ubicacionSinErrorImagen();
                listado[contador, 3] = tweet.usuario.nickname;
                listado[contador, 4] = tweet.fechaHora.Day + "/" + tweet.fechaHora.Month + "/" + tweet.fechaHora.Year + " " + tweet.fechaHora.Hour + ":" + tweet.fechaHora.Minute;
                contador++;
            }
            string json = JsonConvert.SerializeObject(listado);

            return(Content(json, "application/json"));
        }
示例#8
0
        public ActionResult EliminarTuit(String contenido, String tiempo)
        {
            Arbol   arbol    = new Arbol();
            String  username = Session["Usuario"].ToString();
            Usuario usuario  = arbol.obtiene_usuario(username);
            NodoDoblementeEnlazado primero = usuario.tweets_muro.primero;
            DateTime fechaTuit             = DateTime.ParseExact(tiempo, "d/M/yyyy H:m",
                                                                 System.Globalization.CultureInfo.InvariantCulture);
            Tweet tweet = null;

            while (primero != null)
            {
                tweet = primero.tweet;
                if (tweet != null && tweet.usuario.nickname == username && tweet.contenido == contenido && tweet.fechaHora.Year == fechaTuit.Year && tweet.fechaHora.Month == fechaTuit.Month && tweet.fechaHora.Day == fechaTuit.Day && tweet.fechaHora.Hour == fechaTuit.Hour && tweet.fechaHora.Minute == fechaTuit.Minute)
                {
                    break;
                }
                primero = primero.siguiente;
            }
            if (tweet != null)
            {
                usuario.tweets_muro.eliminar(tweet);
                arbol.modifica_usuario(usuario);
                arbol.inserta_xml_tuits();
                for (int i = 0; i < 1027; i++)
                {
                    if (usuario.seguidores.Buscar(i) != null)
                    {
                        usuario.seguidores.Buscar(i).tweets_muro.eliminar(tweet);
                        arbol.modifica_usuario(usuario.seguidores.Buscar(i));
                        arbol.inserta_xml_tuits();
                    }
                }
                Session["Mensaje_Exito"] = "Tweet Eliminado";
            }
            else
            {
                Session["Mensaje_Error"] = "Tweet no encontrado";
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#9
0
 public ListaDoblementeEnlazada()
 {
     primero = null;
     ultimo  = null;
 }