C Sharp XML veya json ile döviz verileri uygulamasi

C Sharp XML veya json ile döviz verileri uygulamasi

C# dilinde XML veya json verisi okuyarak basit bir döviz uygulamasi yapacagiz. AspNET MVC kullanarak bu örnegimize devam edecegiz. Bir proje içerisinde bulunan “Model” katmani içerisine veya kendi olusturacaginiz Classlar klasörü içerisine class eklemesi yapacagiz. Bunun için klasöre sag tiklayip Add >> Class seçenegine tiklayin. Karsiniza çikan ekranda class adimiza XMLIslemleri diyelim ve tamama basalim.

public class XMLUygulamalari
{
}
Seklinde Sayfa karsimiza çikacaktir. Bu sayfaya disaridan erisim yapabilmek için public kismindan sonra gelen kisima static ibaresi ekleyelim. Bu islem sonrasinda  ise bizim merkez bankasi verilerini çekip classlara dönüstürmemiz gerekecektir. Bu islem için XMLUygulamalari classimizin içerisine

[Serializable]

[XmlRoot("Tarih_Date"), XmlType("Currency")]

ibaresini ekleyip hemen alt satirina ise DovizVerileri isminde baska bir class ekliyoruz.



 
public class DovizVerileri
        {
            public int 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; }
        }
Bu propertyleri tanimladiktan sonra XML verisini okuyup bu DovizVerileri Classinin listesini elde edecegimiz XMLReader isminde baska bir clas tanimliyoruz. Bu klass içerisinde asagidaki gibi verileri önce adresten çekicez. Ardindan XML dosyasini localimize kaydedicez ve bu kaydetmis oldugumuz dosyayi ise Data içerisine aktarip dogru bir modelleme yapacagiz.


public static class XMLReader
        {
            
            public static List DovizVerileriCek()
            {
                
                WebClient webClient = new WebClient();
                string xmlData = HttpContext.Current.Server.MapPath("~/Content/Dosyalar/today.xml");
                if (File.Exists(xmlData)) // Daha önce kaydedilmis bir today.xml dosyasi varsa siliyoruz
                {
                    File.Delete(xmlData);
                }
                webClient.DownloadFile("https://www.tcmb.gov.tr/kurlar/today.xml", HttpContext.Current.Server.MapPath("~/Content/Dosyalar/today.xml"));
               
                DataSet ds = new DataSet();//XML dosyasini datasetlere aktariyoruz
                ds.ReadXml(xmlData, XmlReadMode.InferSchema);
                var dovizler = new List();
                dovizler = (from rows in ds.Tables[1].AsEnumerable()
                            select new DovizVerileri
                            {
                                Unit = Convert.ToInt32(rows[0].ToString()), //Convert row to int  
                                Isim = rows[1].ToString(),
                                CurrencyName = rows[2].ToString(),
                                ForexBuying = rows[3].ToString(),
                                ForexSelling = rows[4].ToString(),
                            }).ToList();
                return dovizler; // Bu asamada dovizler isminde liste elde etmis olacagiz
            }
        }
Classimizla simdilik isimiz bitti. Artik controller içerisine gidelim. Controllerda aslinda yapmaniz gereken sey çok basit bir kisim kaldi. Verilerimizi dovizler ismindeki listeye aktarip View katmanina yani sunuma gönderiyoruz. Bunun için ise Index veya istediginiz herhangi bir Action içerisinde


var dovizgetir = XMLUygulamalari.XMLReader.DovizVerileriCek();
return View(dovizgetir);
Yapmaniz yeterli olacaktir. View kisminda ise 

@model List

Tanimladiginiz zamanda büyük olasilikla verileriniz otomatik olarak gelecektir.

Yorumlar

Yorum Yazın

E posta adresiniz kesinlikle yayımlanmayacaktır. * olan alanları doldurmanız zorunludur

Adınız soyadınız *
Eposta Adresi *
Website