C# ile Döviz Kurunu Çekmek

Günümüz e-ticaret sitelerinin satış fiyatlarını dolar üzerinden ayarladığı bir gerçek. Bu tür siteler genelde günlük veya anlık olarak döviz kuruna ihtiyaç duyar. Bu yazımda bende “Türkiye Cumhuriyeti Merkez Bankası” üzerinden anlık veya günlük olarak kur bilgilerini alabileceğiniz uygulama örneği hazırlayacağım.

Uygulama basit bir arayüze sahip olacak. Aldığımız kur bilgisini sadece ekranda bulunan label’a yazdıracağız. Öncelikle bir windows form projesi açın ve form üzerine bir adet label yerleştirin.

Daha sonra formun kod bölümüne geçin ve aşağıdaki GetRate() fonksiyonu ekleyin. Bu fonksiyon gördüğünüz gibi “Türkiye Cumhuriyeti Merkez Bankası” üzerinden istenilen para biriminin değerini decimal değerinde geriye döndürüyor.

[csharp]
private decimal GetRate(string code)
{
string url = string.Empty;
var date = DateTime.Now;
if (date.Date == DateTime.Today)
url = "http://www.tcmb.gov.tr/kurlar/today.xml";
else
url = string.Format("http://www.tcmb.gov.tr/kurlar/{0}{1}/{2}{1}{0}.xml", date.Year, addZero(date.Month), addZero(date.Day));

System.Xml.Linq.XDocument document = System.Xml.Linq.XDocument.Load(url);
Dictionary<string, string> dic = new Dictionary<string, string>();
var result = document.Descendants("Currency")
.Where(v => v.Element("ForexBuying") != null && v.Element("ForexBuying").Value.Length > 0)
.Select(v => new Currency
{
Code = v.Attribute("Kod").Value,
Rate = decimal.Parse(v.Element("ForexBuying").Value.Replace(‘.’, ‘,’))
}).ToList();
return result.FirstOrDefault(s => s.Code == code).Rate;
}
[/csharp]

[csharp]
public class Currency
{
public string Code { get; set; }
public decimal Rate { get; set; }
}
[/csharp]

Bu fonksiyon içerisinde bulunan addZero fonksiyonunu da aşağıda paylaşıyorum. Bu fonksiyonun işlevi ise eğer farklı bir tarihteki kur bilgisini almak istediğimizde date.Day sonucunda gelen 8’in başına 0 eklemek. Buradaki amacım aslında sadece linki aşağıdaki şekilde oluşturmak. Eğer gün ve ay bilgisini bu fonksiyona göndermezseniz Mart ayı için 03 yerine 3 şeklinde bir sonuç alır ve kur bilgisine ulaşırken hata alırsınız.

http://www.tcmb.gov.tr/kurlar/201603/01032016.xml

[csharp]
private string addZero(int p)
{
if (p.ToString().Length == 1)
return "0" + p;
return p.ToString();
}
[/csharp]

Fonksiyonları ekledikten sonra yapmanız gereken tek şek formun load fonksiyonuna aşağıdaki kodu eklemek.

[code]label1.Text = GetRate("USD").ToString();[/code]

Bu işlemi de tamamlandıktan sonra uygulamanızı çalıştırdığınızda karşınıza aşağıdaki gibi bir sonuç çıkacak.

C# ile Döviz Kurunu Çekmek
Benim yukarıda hazırlamış olduğum kur bilgisini alıp, form üzerindeki label’a yazırmak. Siz bunu siteniz için fonksiyonel hale getirip, anlık ve günlük olarak kur bilgisini çekecek şekilde düzenli olarak çalıştırabilirsiniz.

Herhangi bir sorunuz olması durumunda bana iletişim formundan veya yorum bölümünden ulaşabilirsiniz.

One Response

  1. Kadir 21 Mart 2016

Yorum Ekle

This blog is kept spam free by WP-SpamFree.