C# MVC Döviz Kurlarını Çekme

25.11.2016 05:05:00 (4946 Kez okundu)

C# ile döviz kurlarını anlık olarak nasıl çekebileceğimizi öğrenelim.

Merhaba arkadaşlar yine işimde lazım olan bir kaynağı paylaşıyorum.

Örnek olması amacıyla bir controller oluşturuyoruz.

Siz farklı işlemler için farklı çözümler üretebilirsiniz. Örneğin helpers.

Controller ımızın içeriği bu şekilde.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml;
namespace Dvz.Controllers
{
    public class IndexController : Controller
    {
        public ActionResult Index()
        {
            XmlDocument xml = new XmlDocument(); // yeni bir XML dökümü oluşturuyoruz.
            xml.Load("http://www.tcmb.gov.tr/kurlar/today.xml"); // bağlantı kuruyoruz.
            var Tarih_Date_Nodes = xml.SelectSingleNode("//Tarih_Date"); // Count değerini olmak için ana boğumu seçiyoruz.
            var CurrencyNodes = Tarih_Date_Nodes.SelectNodes("//Currency"); // ana boğum altındaki kur boğumunu seçiyoruz.
            int CurrencyLength = CurrencyNodes.Count; // toplam kur boğumu sayısını elde ediyor ve for döngüsünde kullanıyoruz.

            List<_Doviz> dovizler = new List<_Doviz>(); // Aşağıda oluşturduğum public class ile bir List oluşturuyoruz.
            for (int i = 0; i < CurrencyLength; i++) // for u çalıştırıyoruz.
            {
                var cn = CurrencyNodes[i]; // kur boğumunu alıyoruz.
                // Listeye kur bilgirini ekliyoruz.
                dovizler.Add(new _Doviz
                {
                    Kod = cn.Attributes["Kod"].Value,
                    CrossOrder = cn.Attributes["CrossOrder"].Value,
                    CurrencyCode = cn.Attributes["CurrencyCode"].Value,
                    Unit = cn.ChildNodes[0].InnerXml,
                    Isim = cn.ChildNodes[1].InnerXml,
                    CurrencyName = cn.ChildNodes[2].InnerXml,
                    ForexBuying = cn.ChildNodes[3].InnerXml,
                    ForexSelling = cn.ChildNodes[4].InnerXml,
                    BanknoteBuying = cn.ChildNodes[5].InnerXml,
                    BanknoteSelling = cn.ChildNodes[6].InnerXml,
                    CrossRateOther = cn.ChildNodes[8].InnerXml,
                    CrossRateUSD = cn.ChildNodes[7].InnerXml,
                });
            }

            ViewData["dovizler"] = dovizler; // dovizler List değerini data ya atıyoruz ön tarafta viewbag ile çekeceğiz.
            return View();
        }

        public class _Doviz
        {
            public string CrossOrder { get; set; }
            public string Kod { get; set; }
            public string CurrencyCode { get; set; }
            public string Unit { get; set; }
            public string Isim { get; set; }
            public string CurrencyName { get; set; }
            public string ForexBuying { get; set; }
            public string ForexSelling { get; set; }
            public string BanknoteBuying { get; set; }
            public string BanknoteSelling { get; set; }
            public string CrossRateUSD { get; set; }
            public string CrossRateOther { get; set; }
        }
    }
}


Kur bilgilerini bir tabloya aktaralım.

@{
    List<Dvz.Controllers.IndexController._Doviz> dovizler = ViewBag.dovizler as List<Dvz.Controllers.IndexController._Doviz>; // as ile model i seçiyoruz ki aşağıda foreach işleminde Unit, Isim, CurrenyName gibi değerleri intellisense özelliği ile görebilelim.
}
<table width="100%">
    <thead>
        <tr>
            <th>Döviz Kodu<br />Currency Code</th>
            <th>Birim<br />Unit</th>
            <th>Döviz Cinsi<br />Currency</th>
            <th>Döviz Alış<br />Forex Buying</th>
            <th>Döviz Satış<br />Forex Selling</th>
            <th>Efektif Alış<br />Banknote Buying</th>
            <th>Efektif Satış<br />Banknote Selling</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var d in dovizler)
        {

            if (d.CurrencyCode != "XDR")
            {

                string img = "http://www.tcmb.gov.tr/kurlar/kurlar_tr_dosyalar/images/" + d.CurrencyCode + ".gif";

                <tr>
                    <td>
                        <img src="@img" />
                        @d.CurrencyCode / TRY
                    </td>
                    <td>@d.Unit</td>
                    <td>@d.Isim</td>
                    @*<td>@d.CurrencyName</td>*@
                    <td>@d.ForexBuying</td>
                    <td>@d.ForexSelling</td>
                    <td>@d.BanknoteBuying</td>
                    <td>@d.BanknoteSelling</td>
                    @*<td>@d.CrossRateUSD</td>
                        <td>@d.CrossRateOther</td>*@
                </tr>
            }
        }
    </tbody>
</table>

Bu da bu kadar çalışmalarınızda başarılar ve kolaylıklar dileğiyle, başka bir yazıda görüşmek üzere hoşça kalın.  

Yorumlar

Ortalama

Henüz değerlendirilmemiş.
Henüz yorum yapılmamış.
İlk yorumu siz yapın.

Bir Yorum Yaz