<% Imports System.Xml Imports System.Web Public Class Currency #Region "Config - Conts" Public Const XMLURL As String = "http://www.tcmb.gov.tr/kurlar/today.xml" Private Const STR_TCMBXML As String = "TCMBXML" #End Region #Region "Enums" Public Enum CurCode As Byte USD = 1 EUR = 2 CAD DKK SEK NOK CHF JPY SAR KWD AUD GBP IRR SYP JOG BGL ROL ILS End Enum Public Enum CurType As Byte ForexBuying 'Döviz alis ForexSelling 'Döviz satis BanknoteBuying 'Efektif alis BanknoteSelling 'Efektif satis End Enum #End Region #Region "Fields" 'Get Current Instance Private HTTP As HttpContext = HttpContext.Current Private CurXML As XmlDocument Private _CurrencyCode As CurCode Private _CurrencyType As CurType Private _XMLLoaded As Boolean Public Property XMLLoaded() As Boolean Get Return _XMLLoaded End Get Set(ByVal Value As Boolean) _XMLLoaded = Value End Set End Property Public Property CurrencyCode() As CurCode Get Return _CurrencyCode End Get Set(ByVal Value As CurCode) _CurrencyCode = Value End Set End Property Public Property CurrencyType() As CurType Get Return _CurrencyType End Get Set(ByVal Value As CurType) _CurrencyType = Value End Set End Property #End Region #Region "Constructors" Public Sub New() End Sub Public Sub New(ByVal CurrencyCode As CurCode, Optional ByVal CurrencyType As CurType = CurType.ForexSelling) Me.New() Me.CurrencyCode = CurrencyCode Me.CurrencyType = CurrencyType End Sub #End Region #Region "Methods" Public Function LoadXML() As Boolean If Not XMLLoaded Then CurXML = New XmlDocument 'Not Cached If HTTP.Cache.Item(STR_TCMBXML) Is Nothing Then Try CurXML.Load(XMLURL) HTTP.Cache.Add(STR_TCMBXML, CurXML, Nothing, DateTime.MaxValue, TimeSpan.FromHours(12), Caching.CacheItemPriority.Default, Nothing) XMLLoaded = True Catch ex As Net.WebException XMLLoaded = False End Try Else 'Cached CurXML = CType(HTTP.Cache.Item(STR_TCMBXML), XmlDocument) XMLLoaded = True End If End If Return XMLLoaded End Function Public Function GetCurrency() As String 'Return empty if can not loaded ! If Not LoadXML() Then Return String.Empty 'Get Node Dim CurNode As XmlNode = CurXML.SelectSingleNode("/Tarih_Date/Currency[@Kod ='" & Me.CurrencyCode.ToString & "']/" & Me.CurrencyType.ToString) Return CurNode.InnerText End Function #End Region End Class %>