コード例 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Kaynak k = new Kaynak();

            k.KaynakURL = textBox1.Text;
            k.SonTarama = DateTime.MinValue;

            ctx.Kaynaklar.Add(k);
            ctx.SaveChanges();
            MessageBox.Show("Kaynak eklendi.");
            KaynakYenile();
        }
コード例 #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            Form        cikti = new Form();
            RichTextBox r     = new RichTextBox();

            r.Dock       = DockStyle.Fill;
            r.ScrollBars = RichTextBoxScrollBars.Vertical; //Dikey kaydırma çubuğu
            cikti.Controls.Add(r);
            cikti.Show();

            WebClient indiren = new WebClient();

            foreach (var item in listBox1.Items)
            {
                Application.DoEvents();
                Kaynak eleman   = (Kaynak)item;
                string gelenXML = indiren.DownloadString(eleman.KaynakURL);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml(gelenXML);
                Application.DoEvents();

                XmlNode  katNode = xml.SelectSingleNode("/rss/channel/title");
                Kategori kat     = new Kategori();
                kat.KategoriAdi = katNode.InnerText;

                Kategori dbkat = ctx.Kategoriler.Where(a => a.KategoriAdi == kat.KategoriAdi).FirstOrDefault();
                //kategori yoksa null ise if ile ekliyoruz.
                if (dbkat == null)
                {
                    ctx.Kategoriler.Add(kat);
                    ctx.SaveChanges();
                }
                //Varsa veya if de eklediğimiz için dbkat id si ile birlikte geldi. Haber ekleyebilmek için.Artık o kategori var.
                dbkat = ctx.Kategoriler.Where(a => a.KategoriAdi == kat.KategoriAdi).FirstOrDefault();


                //Haberleri almaya başla
                XmlNodeList haberListe = xml.SelectNodes("/rss/channel/item");
                foreach (XmlNode h in haberListe) // h nesnesi : içinde bir habere ait xml var.
                {
                    try
                    {
                        Application.DoEvents();
                        Haber haber = new Haber();
                        haber.Baslik     = h.SelectSingleNode("title").InnerText;
                        haber.Aciklama   = h.SelectSingleNode("description").InnerText;
                        haber.HaberLink  = h.SelectSingleNode("link").InnerText;
                        haber.KategoriID = dbkat.KategoriID;
                        Application.DoEvents();
                        try
                        {
                            //resim hata verirse atla.
                            haber.ResimURL = h.ChildNodes[5].Attributes["url"].Value;
                        }
                        catch { }

                        string gelenTarih = h.SelectSingleNode("pubDate").InnerText;
                        //<pubDate>Thu, 01 Sep 2016 23:18:08 GMT</pubDate>
                        string[] temizlik = new string[] { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "GMT", "," };
                        foreach (var t in temizlik)
                        {
                            gelenTarih = gelenTarih.Replace(t, "");
                        }
                        gelenTarih = gelenTarih.Trim();
                        DateTime d = DateTime.MaxValue;
                        DateTime.TryParse(gelenTarih, out d);
                        haber.YayinTarih = d;


                        ctx.Haberler.Add(haber);
                        r.Text += haber.Baslik + " başarıyla eklendi \n";
                    }
                    catch (Exception ex)
                    {
                        r.Text += "HATA: " + ex.Message + "\n \n";
                    }
                }
                ctx.SaveChanges();
            }
        }