Click here to Skip to main content
15,884,783 members
Articles / Mobile Apps

Yahoo! Managed

Rate me:
Please Sign up or sign in to vote.
4.87/5 (56 votes)
8 Jan 2015Apache12 min read 523.4K   25.5K   262  
Download financial data, managing online portfolio or using Search BOSS from Yahoo! with .NET
' ******************************************************************************
' ** 
' **  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 Base

    ''' <summary>
    ''' Base event class for asynchronous download processes and provides the individual user argument. This class must be inherited.
    ''' </summary>
    ''' <remarks></remarks>
    Public MustInherit Class DownloadEventArgs
        Inherits EventArgs
        Private mUserArgs As Object = Nothing
        ''' <summary>
        ''' Gets the user argument that were passed when the download was started.
        ''' </summary>
        ''' <value></value>
        ''' <returns>An object defined by the user</returns>
        ''' <remarks></remarks>
        Public ReadOnly Property UserArgs() As Object
            Get
                Return mUserArgs
            End Get
        End Property
        Protected Sub New(ByVal userArgs As Object)
            mUserArgs = userArgs
        End Sub
    End Class

    ''' <summary>
    ''' Base event class for changed asynchronous download processes that provides additionally the response of the download. This class must be inherited.
    ''' </summary>
    ''' <remarks></remarks>
    Public MustInherit Class DownloadChangedEventArgs
        Inherits DownloadCompletedEventArgs
        Private mMaximumResults As Integer = 0
        Private mReceivedResultsCount As Integer = 0
        ''' <summary>
        ''' The number of currently received results.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property ReceivedResultsCount() As Integer
            Get
                Return mReceivedResultsCount
            End Get
        End Property
        ''' <summary>
        ''' The maximum number of received results.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks>If value is 0, all results will be downloaded</remarks>
        Public ReadOnly Property MaximumResultsCount() As Integer
            Get
                Return mMaximumResults
            End Get
        End Property
        ''' <summary>
        ''' The calculated percentage of download progress.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Percentage() As Double
            Get
                If mMaximumResults > 0 Then : Return mReceivedResultsCount / mMaximumResults
                Else : Return 0
                End If
            End Get
        End Property
        Protected Sub New(ByVal userArgs As Object, ByVal resp As Response, ByVal max As Integer, ByVal received As Integer)
            MyBase.New(userArgs, resp)
            mMaximumResults = max
            mReceivedResultsCount = received
        End Sub
    End Class

    ''' <summary>
    ''' Base event class for completed asynchronous download processes that provides additionally the response of the download. This class must be inherited.
    ''' </summary>
    ''' <remarks></remarks>
    Public MustInherit Class DownloadCompletedEventArgs
        Inherits DownloadEventArgs
        Private mResponse As Response = Nothing
        ''' <summary>
        ''' Gets the response of the download process.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Response() As Response
            Get
                Return mResponse
            End Get
        End Property
        Protected Sub New(ByVal userArgs As Object, ByVal resp As Response)
            MyBase.New(userArgs)
            mResponse = resp
        End Sub
    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.

License

This article, along with any associated source code and files, is licensed under The Apache License, Version 2.0


Written By
Germany Germany
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions