ASP.NET ile Döviz Kurlarını Çekme

27.07.2005

Okuyucu : 4.277
Günlük Okuyucu : 4,2

Kod basit bir şekilde TCMB' den dolari euro vs. gibi kurları çekiyor. 12 saatlik cache e alıyor ve her 12 saatte bir tekrar bağlanıp güncelliyor. ASP.NET için yazılmıştır, Windows uygulamaları cache opsiyonunu değiştirmelidir.

ENUMlar gibi bazı kısımları Döviz Kurları XML Web Servisi makalesinden çaldım. Gayet kullanışlı bir class oldu. Şu şekilde kullanılabilir.

Class' ın içerisinde ToDouble yapmamış string bırakmışım artık onu düzeltirsiniz.

Dim Currency As New Currency(Currency.CurCode.USD)
CurrencyVal = Convert.ToDouble(Currency.GetCurrency().Trim)

Kaynak Kodunu Download Edin (Download Source Code);

/opensource/source-code/currency.txt

Kaynak Kod;

1 : <%
2 : Imports System.Xml
3 : Imports System.Web

5 : Public Class Currency

7 : #Region "Config - Conts"
8 : Public Const XMLURL As String = "http://www.tcmb.gov.tr/kurlar/today.xml"
9 : Private Const STR_TCMBXML As String = "TCMBXML"
10 : #End Region

12 : #Region "Enums"
13 : Public Enum CurCode As Byte
14 : USD = 1
15 : EUR = 2
16 : CAD
17 : DKK
18 : SEK
19 : NOK
20 : CHF
21 : JPY
22 : SAR
23 : KWD
24 : AUD
25 : GBP
26 : IRR
27 : SYP
28 : JOG
29 : BGL
30 : ROL
31 : ILS
32 : End Enum

34 : Public Enum CurType As Byte
35 : ForexBuying 'Döviz alis
36 : ForexSelling 'Döviz satis
37 : BanknoteBuying 'Efektif alis
38 : BanknoteSelling 'Efektif satis
39 : End Enum

41 : #End Region

43 : #Region "Fields"
44 : 'Get Current Instance
45 : Private HTTP As HttpContext = HttpContext.Current
46 : Private CurXML As XmlDocument

48 : Private _CurrencyCode As CurCode
49 : Private _CurrencyType As CurType
50 : Private _XMLLoaded As Boolean

52 : Public Property XMLLoaded() As Boolean
53 : Get
54 : Return _XMLLoaded
55 : End Get
56 : Set(ByVal Value As Boolean)
57 : _XMLLoaded = Value
58 : End Set
59 : End Property

61 : Public Property CurrencyCode() As CurCode
62 : Get
63 : Return _CurrencyCode
64 : End Get
65 : Set(ByVal Value As CurCode)
66 : _CurrencyCode = Value
67 : End Set
68 : End Property

70 : Public Property CurrencyType() As CurType
71 : Get
72 : Return _CurrencyType
73 : End Get
74 : Set(ByVal Value As CurType)
75 : _CurrencyType = Value
76 : End Set
77 : End Property

79 : #End Region

81 : #Region "Constructors"
82 : Public Sub New()

84 : End Sub

86 : Public Sub New(ByVal CurrencyCode As CurCode, Optional ByVal CurrencyType As CurType = CurType.ForexSelling)
87 : Me.New()
88 : Me.CurrencyCode = CurrencyCode
89 : Me.CurrencyType = CurrencyType
90 : End Sub

92 : #End Region

94 : #Region "Methods"

96 : Public Function LoadXML() As Boolean

98 : If Not XMLLoaded Then
99 : CurXML = New XmlDocument

101 : 'Not Cached
102 : If HTTP.Cache.Item(STR_TCMBXML) Is Nothing Then
103 : Try
104 : CurXML.Load(XMLURL)

106 : HTTP.Cache.Add(STR_TCMBXML, CurXML, Nothing, DateTime.MaxValue, TimeSpan.FromHours(12), Caching.CacheItemPriority.Default, Nothing)
107 : XMLLoaded = True

109 : Catch ex As Net.WebException
110 : XMLLoaded = False

112 : End Try


115 : Else 'Cached
116 : CurXML = CType(HTTP.Cache.Item(STR_TCMBXML), XmlDocument)
117 : XMLLoaded = True

119 : End If

121 : End If

123 : Return XMLLoaded

125 : End Function

127 : Public Function GetCurrency() As String

129 : 'Return empty if can not loaded !
130 : If Not LoadXML() Then Return String.Empty

132 : 'Get Node
133 : Dim CurNode As XmlNode = CurXML.SelectSingleNode("/Tarih_Date/Currency[@Kod ='" & Me.CurrencyCode.ToString & "']/" & Me.CurrencyType.ToString)

135 : Return CurNode.InnerText

137 : End Function

139 : #End Region

141 : End Class
142 : %>
Source Script is modified version of HiLiter
Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında