Beispiel #1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Bloque de codigo que se va a estar ejecutando cada cierto tiempo.
            try
            {
                //Se hace la consulta de los entries de los rss.
                var db   = new DBEntities1();
                var objs = (from obj in db.RSS select obj);
                foreach (var obj in objs)
                {
                    FeedRSS      aux = new FeedRSS(obj.Link.Trim());
                    List <entry> enlaces;
                    if (obj.Palabras.Length != 0)
                    {
                        enlaces = aux.getFeed(obj.Palabras.Split(',').ToList(), obj.Operador);
                    }
                    else
                    {
                        enlaces = aux.getFeed();
                    }

                    //Se procede a guardar los nuevos rss
                    foreach (var enlace in enlaces)
                    {
                        //Ver si ya existen un id
                        var query = (from enl in db.Enlaces where enl.Link == enlace.Url && enl.RSS == obj.ID select enl);
                        if (query.Count() == 0)
                        {
                            Enlaces nuevo = new Enlaces();
                            nuevo.Link        = enlace.Url;
                            nuevo.Descripcion = enlace.Name;
                            nuevo.Categoria   = enlace.Type;
                            nuevo.RSS         = obj.ID;
                            nuevo.Fecha       = DateTime.Now;
                            nuevo.Leido       = false;
                            db.Enlaces.Add(nuevo);
                        }
                    }
                }
                if (db.Enlaces.Local.Count != 0)
                {
                    db.SaveChanges();
                    notifyIcon1.ShowBalloonTip(20000, "Nuevas entradas de rss",
                                               string.Format("Se han encontrado {0} nuevas entradas de los rss que se tienen en la base de datos. Haga clic aqui para ir a verles.", db.Enlaces.Local.Count),
                                               ToolTipIcon.Info);
                }
                var query2 = (from obj in db.Enlaces where obj.Leido == false select obj);
                this.toolstrip_rss.Text = string.Format("{0} entrada(s) sin leer.", query2.Count());
                this.notifyIcon1.Text   = string.Format("{0} entrada(s) sin leer.", query2.Count());
                this.toolIntento.Text   = string.Format("Ultimo intento de lectura de entradas de RSS hecha a las {0}.",
                                                        DateTime.Now.ToString("dd-MM-yyyy hh:mm"));
                db.Dispose();
            }
            catch (Exception f)
            {
                MessageBox.Show("Ocurrio un error.\n" + f.Message, "Error en la aplicación");
            }
        }
Beispiel #2
0
        private void btn_leer_Click(object sender, EventArgs e)
        {
            FeedRSS      lector = new FeedRSS(txt_rss.Text.Trim());
            List <entry> lista  = new List <entry>();

            if (chk_buscar.Checked)
            {
                var cs = new List <string>();
                foreach (var ds in cb_busqueda.Items)
                {
                    cs.Add(ds.ToString());
                }
                bool andor = (cb_logico.SelectedItem.ToString().Trim() == "AND" ? true : false);
                lista = lector.getFeed(cs, andor);
            }
            else
            {
                lista = lector.getFeed();
            }

            //Bloque de codigo para verificar  si ocurrio un error interno en los metodos
            if (lector.Mensaje != null)
            {
                ListViewItem ax = new ListViewItem();
                ax.Text = lector.Mensaje.Source;
                listView1.Items.Add(ax);
            }
            else
            {
                //Se ejecuta este codigo en caso de no haber ocurrido algun error interno.
                listView1.Items.Clear();
                foreach (var entrada in lista)
                {
                    ListViewItem ax = new ListViewItem();
                    ax.Text = entrada.Name;
                    ax.SubItems.Add(entrada.Type);
                    ax.SubItems.Add(entrada.Url);
                    listView1.Items.Add(ax);
                }

                if (lista.Count == 0)
                {
                    ListViewItem ax = new ListViewItem();
                    ax.Text = "No se encontraron elementos con los criterios seleccionados...";
                    listView1.Items.Add(ax);
                }
            }
        }