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