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 { }
[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 ListClassimizla 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çerisindeDovizVerileriCek() { 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 } }
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.