Пример #1
0
        private void KurVerisiCek(string url)
        {
            XDocument xDoc = null;

            try
            {
                xDoc = XDocument.Load(url);
            }
            catch (System.Net.WebException wex)
            {
                if (wex.Message.Contains("404") == true)
                {
                    // Tatil günü hatası..
                }

                return;
            }
            catch (Exception ex)
            {
                return;
            }

            // TODO : Burada verinin doğru gelip gelmediği kontrol edilecek.

            XElement tarih_date = xDoc.Root;
            DateTime tarih      = DateTime.Parse(tarih_date.Attribute("Tarih").Value);

            List <XElement> kurlar = (from c in tarih_date.Elements("Currency")
                                      select c).ToList();

            DovizDBContext db = new DovizDBContext();

            foreach (XElement kur in kurlar)
            {
                string kod   = kur.Attribute("Kod").Value;
                string isim  = kur.Element("Isim").Value;
                string cname = kur.Element("CurrencyName").Value;
                string unit  = kur.Element("Unit").Value;
                string fb    = kur.Element("ForexBuying").Value.Replace(".", ",");
                string fs    = kur.Element("ForexSelling").Value.Replace(".", ",");
                string bb    = kur.Element("BanknoteBuying").Value.Replace(".", ",");
                string bs    = kur.Element("BanknoteSelling").Value.Replace(".", ",");

                isim  = (string.IsNullOrEmpty(isim)) ? "..." : isim;
                cname = (string.IsNullOrEmpty(cname)) ? "..." : cname;
                unit  = (string.IsNullOrEmpty(unit)) ? "0" : unit;
                fb    = (string.IsNullOrEmpty(fb)) ? "0" : fb;
                fs    = (string.IsNullOrEmpty(fs)) ? "0" : fs;
                bb    = (string.IsNullOrEmpty(bb)) ? "0" : bb;
                bs    = (string.IsNullOrEmpty(bs)) ? "0" : bs;

                Kur kurNesnesi = new Kur()
                {
                    Tarih           = tarih,
                    Kod             = kod,
                    Isim            = isim,
                    CurrencyName    = cname,
                    Unit            = int.Parse(unit),
                    ForexBuying     = decimal.Parse(fb),
                    ForexSelling    = decimal.Parse(fs),
                    BanknoteBuying  = decimal.Parse(bb),
                    BanknoteSelling = decimal.Parse(bs)
                };

                db.Kurlar.Add(kurNesnesi);
            }

            // Eğer bir hata varsa liste olarak verir.
            var errorList = db.GetValidationErrors();

            if (errorList.Count() > 0)
            {
                // Hata var demektir.
                foreach (var err in errorList)
                {
                    foreach (var item in err.ValidationErrors)
                    {
                        // Hataların hepsi gösterilir.
                        //MessageBox.Show(
                        //    item.PropertyName + Environment.NewLine + item.ErrorMessage);
                        MessageBox.Show(item.ErrorMessage);
                    }
                }

                // Hata olduğu için insert zaten edemez.
                return;
            }

            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
        private void btnWebSorgula_Click(object sender, EventArgs e)
        {
            // tarih1 ve tarih2 bugünden büyük seçilemez.

            // Eğer tarih1, tarih2'den büyükse hiçbirşey yapmadan kullanıcıya uyarı vermeli. Tarihleri değiştirmeye zorlamalı.

            // tarih1'den itibaren 1 er gün olarak tarih arttırılarak döviz kuru ilgili url oluşturularak xml çekilmeli. XML içinden tüm kurlar okunarak veritabanına insert edilir.
            // Veritabanından günler çekilir ve kullanıcının seçtiği günler elimizdeki günlerde yoksa veriler netten çekilir.(Aynı zamanda haftasonu değilse..)

            XDocument xDoc = XDocument.Load("http://www.tcmb.gov.tr/kurlar/today.xml");

            XElement tarih_date = xDoc.Root;
            DateTime tarih      = DateTime.Parse(tarih_date.Attribute("Tarih").Value);

            XElement usd = (from c in tarih_date.Elements("Currency")
                            where c.Attribute("Kod").Value == "USD"
                            select c).FirstOrDefault();

            Kur kurNesnesi = new Kur()
            {
                Tarih           = tarih,
                Kod             = usd.Attribute("Kod").Value,
                Isim            = usd.Element("Isim").Value,
                CurrencyName    = usd.Element("CurrencyName").Value,
                Unit            = int.Parse(usd.Element("Unit").Value),
                ForexBuying     = decimal.Parse(usd.Element("ForexBuying").Value.Replace(".", ",")),
                ForexSelling    = decimal.Parse(usd.Element("ForexSelling").Value.Replace(".", ",")),
                BanknoteBuying  = decimal.Parse(usd.Element("BanknoteBuying").Value.Replace(".", ",")),
                BanknoteSelling = decimal.Parse(usd.Element("BanknoteSelling").Value.Replace(".", ","))
            };

            //kurNesnesi.Isim = null;
            //kurNesnesi.CurrencyName += "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

            DovizDBContext db = new DovizDBContext();

            db.Kurlar.Add(kurNesnesi);

            // Eğer bir hata varsa liste olarak verir.
            var errorList = db.GetValidationErrors();

            if (errorList.Count() > 0)
            {
                // Hata var demektir.
                foreach (var err in errorList)
                {
                    foreach (var item in err.ValidationErrors)
                    {
                        // Hataların hepsi gösterilir.
                        //MessageBox.Show(
                        //    item.PropertyName + Environment.NewLine + item.ErrorMessage);
                        MessageBox.Show(item.ErrorMessage);
                    }
                }

                // Hata olduğu için insert zaten edemez.
                return;
            }



            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }