|
' ******************************************************************************
' **
' ** Yahoo Finance Managed
' ** Written by Marius Häusler 2010
' ** It would be pleasant, if you contact me when you are using this code.
' ** Contact: YahooFinanceManaged@gmail.com
' ** Project Home: http://code.google.com/p/yahoo-finance-managed/
' **
' ******************************************************************************
' **
' ** Copyright 2010 Marius Häusler
' **
' ** Licensed under the Apache License, Version 2.0 (the "License");
' ** you may not use this file except in compliance with the License.
' ** You may obtain a copy of the License at
' **
' ** http://www.apache.org/licenses/LICENSE-2.0
' **
' ** Unless required by applicable law or agreed to in writing, software
' ** distributed under the License is distributed on an "AS IS" BASIS,
' ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' ** See the License for the specific language governing permissions and
' ** limitations under the License.
' **
' ******************************************************************************
Namespace Finance.Support
''' <summary>
''' Stores informations of a financial product. Implements IID.
''' </summary>
''' <remarks></remarks>
Public Class YID
Implements IID
Friend ReadOnly mHelper As New MyHelper
Private mID As String = String.Empty
Private mName As String = String.Empty
Private mIndustryName As String = String.Empty
Private mStockExchange As StockExchange = Nothing
Private mISIN As ISIN = Nothing
Private mWKN As String = String.Empty
Private mType As FinancialSecurityType = FinancialSecurityType.Any
''' <summary>
''' The full ID with suffix
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overridable ReadOnly Property ID() As String Implements IID.ID
Get
Return mID
End Get
End Property
''' <summary>
''' The base ID without suffix
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property BaseID() As String
Get
Dim index As Integer = mID.LastIndexOf("."c)
If index = -1 Then : Return mID
Else : Return mID.Substring(0, index)
End If
End Get
End Property
''' <summary>
''' The suffix of the ID
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property Suffix() As String
Get
Dim index As Integer = mID.LastIndexOf("."c)
If index = -1 Then : Return String.Empty
Else : Return mID.Substring(index)
End If
End Get
End Property
''' <summary>
''' The name of the security
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property Name() As String
Get
Return mName
End Get
Set(ByVal value As String)
mName = value
End Set
End Property
''' <summary>
''' The name of the industry
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property IndustryName() As String
Get
Return mIndustryName
End Get
Set(ByVal value As String)
mIndustryName = value
End Set
End Property
''' <summary>
''' Informations about the stock exchange where the stock is traded
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Don't accept Null/Nothing.</remarks>
Public Property StockExchange() As StockExchange
Get
Return mStockExchange
End Get
Set(ByVal value As StockExchange)
mStockExchange = value
End Set
End Property
''' <summary>
''' The International Securities Identification Number
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Property ISIN() As ISIN
Get
Return mISIN
End Get
Set(ByVal value As ISIN)
mISIN = value
End Set
End Property
''' <summary>
''' The type of the security
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overridable Property Type() As FinancialSecurityType
Get
Return mType
End Get
Set(ByVal value As FinancialSecurityType)
mType = value
End Set
End Property
Public Property WKN() As String
Get
Return mWKN
End Get
Set(ByVal value As String)
mWKN = value
End Set
End Property
Protected Overridable Sub SetID(ByVal id As String)
If id Is Nothing OrElse id.Trim = String.Empty Then Throw New ArgumentNullException("id", "The ID is null.")
mID = id.Trim.ToUpper
If mStockExchange Is Nothing Then
Dim se As StockExchange = WorldMarket.GetStockExchangeBySuffix(id)
If se IsNot Nothing Then mStockExchange = se
End If
End Sub
Protected Sub New()
End Sub
''' <summary>
''' Creates a new instance by an ID
''' </summary>
''' <param name="id"></param>
''' <remarks></remarks>
Public Sub New(ByVal id As String)
Me.SetID(id)
End Sub
''' <summary>
''' Creates a new instance from an IDSearchResult
''' </summary>
''' <param name="searchResult"></param>
''' <remarks></remarks>
Public Sub New(ByVal searchResult As IDSearchResult)
If searchResult IsNot Nothing Then
Me.SetID(searchResult.ID)
Me.Name = searchResult.Name
Me.IndustryName = searchResult.IndustryName
Me.Type = searchResult.Type
Dim exc As String = searchResult.Exchange.Replace("N/A", "").Trim
If mStockExchange Is Nothing And exc <> String.Empty Then
Dim se As StockExchange = WorldMarket.GetStockExchangeByID(exc)
If se Is Nothing Then se = WorldMarket.GetStockExchangeByName(exc)
If se IsNot Nothing Then
mStockExchange = se
Else
mStockExchange = New StockExchange(searchResult.Exchange, Me.Suffix, searchResult.Exchange)
End If
End If
Me.WKN = searchResult.WKN.Replace("N/A", "").Trim
If searchResult.ISIN.Replace("N/A", "").Trim <> String.Empty Then
Try
Me.ISIN = New ISIN(searchResult.ISIN)
Catch ex As ArgumentException
Me.ISIN = Nothing
End Try
End If
Else
Throw New ArgumentException("The passed result is null", "searchResult")
End If
End Sub
''' <summary>
''' Returns the URL of the Yahoo RSS news feed.
''' </summary>
''' <param name="server">The server of the feed. Decides language.</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function RssNewsURL(Optional ByVal server As Server = Server.USA) As String
Return "http://" & mHelper.ServerString(server) & "finance.yahoo.com/rss/headline?s=" & mHelper.CleanYqlParam(mID)
End Function
Public Function RssFinancialBlogsURL() As String
Return "http://finance.yahoo.com/rss/SeekingAlpha?s=" & mHelper.CleanYqlParam(mID)
End Function
''' <summary>
''' Returns the full ID of the stock.
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Public Overrides Function ToString() As String
Return mID
End Function
End Class
End Namespace
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.